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...