Codigo limpio y refactorización
El Principio de Sustitución de Liskov (LSP) establece que una clase derivada debe poder ser usada en lugar de su clase base sin alterar el comportamiento esperado del programa. En otras palabras, las subclases deben mantener las propiedades y funcionalidades de la clase base.
- ¿Por qué es importante?
Garantiza que el código sea reutilizable y extensible sin introducir errores o comportamiento inesperado cuando se utilizan subclases.
Ejemplo
Código Malo (Violación del LSP)
Problema: No todos los pájaros vuelan.
1abstract class Pajaro { 2 abstract void volar(); 3} 4class Gaviota extends Pajaro{ 5 @Override 6 void volar() { 7 System.out.println("Volando moviendo las alas"); 8 } 9} 10class Avestruz extends Pajaro{ 11 @Override 12 void volar() { 13 throw new UnsupportedOperationException("No puedo volar"); 14 } 15}
Código Bueno (Cumpliendo el LSP)
Solución: Creamos 2 clases abstractas para diferenciar entre pájaros voladores y no voladores.
Beneficios de Aplicar el LSP
- Reutilización del Código: Las subclases pueden ser usadas de manera intercambiable con la clase base sin problemas.
- Facilidad de Mantenimiento: No hay comportamientos inesperados al trabajar con subclases.
- Mayor Flexibilidad: Se pueden agregar nuevas subclases sin modificar el código existente.
1abstract class Pajaro { 2} 3abstract class ParajaroNoVolador extends Pajaro{ 4} 5abstract class PajaroVolador extends Pajaro{ 6 abstract void volar(); 7} 8 9 10class Gaviota extends PajaroVolador{ 11 @Override 12 void volar() { 13 System.out.println("Volando moviendo las alas"); 14 } 15} 16class Avestruz extends ParajaroNoVolador{ 17 18}
Aplicar el Principio de Sustitución de Liskov (LSP) asegura que tu código sea más robusto, modular y libre de sorpresas al trabajar con herencia. 😊
- Loading...