Codigo limpio y refactorización
La herencia es un principio fundamental de la programación orientada a objetos que permite reutilizar código, reducir duplicación y mejorar la organización. Sin embargo, un mal uso de la herencia puede complicar el código, aumentar la rigidez y violar principios como el de responsabilidad única (SRP) o el de sustitución de Liskov (LSP).
En ocasiones es recomendable usar composición en lugar de herencia.
Ejemplo Malo: Código Sin Herencia
1public class Dog { 2 public void eat() { 3 System.out.println("The dog is eating."); 4 } 5 6 public void sleep() { 7 System.out.println("The dog is sleeping."); 8 } 9 10 public void bark() { 11 System.out.println("The dog is barking."); 12 } 13} 14 15public class Cat { 16 public void eat() { 17 System.out.println("The cat is eating."); 18 } 19 20 public void sleep() { 21 System.out.println("The cat is sleeping."); 22 } 23 24 public void meow() { 25 System.out.println("The cat is meowing."); 26 } 27}
Ejemplo Corregido: Uso de Herencia
Beneficios
- Reutilización de Código: Los métodos comunes como eat() y sleep() están centralizados en la clase base Animal.
- Mantenibilidad: Cambios en el comportamiento común solo necesitan hacerse en la clase base.
- Extensibilidad: Es fácil agregar nuevos tipos de animales que compartan la funcionalidad común.
- Claridad: Las clases derivadas se enfocan únicamente en su comportamiento específico, mejorando la cohesión.
1public class Animal { 2 public void eat() { 3 System.out.println("The animal is eating."); 4 } 5 6 public void sleep() { 7 System.out.println("The animal is sleeping."); 8 } 9} 10 11public class Dog extends Animal { 12 public void bark() { 13 System.out.println("The dog is barking."); 14 } 15} 16 17public class Cat extends Animal { 18 public void meow() { 19 System.out.println("The cat is meowing."); 20 } 21}
- Loading...