¡Hola!
Con el tema de interfaces se recomienda tener mucho en cuenta el principio I de los principios SOLID, es decir, Interface segregation
o segregación de interfaces, este principio consiste en que una clase no debería de tener implementada una interfaz con más métodos de los que necesita, ejemplo, de una interfaz llamada IAnimales
que tiene los siguientes métodos:
- Volar
- Comer
- Correr
- Caminar
Una clase llamada Perro
no debería de poder implementar esta interfaz, porque un perro no puede volar (a menos que estés en una película de terror), aplicando el principio de segregación de interfaces, se recomienda dividir esta interfaz, ejemplo:
interface IAnimales {
correr(): void;
caminar(): void;
}
interface IAnimalesVoladores extends IAnimales {
volar(): void;
}
interface IAnimalesNoVoladores extends IAnimales {
noVolar(): void;
saltar(): void;
}
class Pajaro implements IAnimalesVoladores {
public correr(): void {}
public caminar(): void {}
}
class Perro implements IAnimalesNoVoladores {
public volar(): void {}
public noVolar(): void {}
public saltar(): void {}
public correr(): void {}
public caminar(): void {}
}
Espero que te sea de ayuda este aporte.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?