En mi último post hablé del principo Open/Closed, este principio es la base para contruir código que es mantenible y reusable. Este principio sotiene que un código bien diseñado puede ser extendido sin modificación; que la nuevas características en un programa bien diseñado son implementadas adicionando nuevo código en lugar de cambiar el código existente, código que ya funciona.
Los conceptos de POO detrás de este principio son Abstracción y Polimorfismo, en la mayoría de lenguajes orientados a objetos estos dos conceptos se apoyan en la Herencia, una de las características claves de POO.
Es mediante la herencia que podemos crear clases derivadas que se ajusten a las interfaces abstractas polimórficas definidas por las funciones virtuales puras en las clases de base abstracta.
¿Cuáles son las características de las jerarquías mejor herencia?
¿Cuáles son las trampas que nos llevan a crear jerarquías que no se ajusten al principio abierto-cerrado?
Estas son las preguntas que el principio Liskov resuelve y que este post abordará.
