Esto, nuevamente, es para minimizar el impacto de los cambios que puedan haber sobre nuestro código.
Los problemas que resuelve LSP casi siempre son fácilmente evitables. Hay algunos habituales signos reveladores de que una violación a LSP aparece en el código. He aquí un escenario que muestra cómo puede ocurrir una violación a LSP.
Si miramos la clase PrioridadOrden, veremos como la misma viola éste principio porque cuando un cliente de la clase Orden chequea la propiedad EsValida, espera un retorno de tipo bool.
Pero cuando en lugar de tener un instancia de Orden, el cliente tiene una instancia de PrioridadOrden, súbitamente el cliente necesita capturar una posible excepción (try-catch) que se lanza cuando la orden no es válida.
De pronto, el cliente necesita conocer con qué tipo de clase específica esta tratando, lo que representa una clara violación al principio de sustitución de Liskov.
Este principio fue introducido inicialmente como comportamiento por Barbara Liskov en un discurso en una conferencia de 1987 titulada: Abstracción de datos y jerarquía.
0 comentarios:
Publicar un comentario
Muchas gracias por leer el post y comentarlo.