Una interface Worker tiene work(), eat() y sleep(). Un Robot debe implementar eat() con raise NotImplementedError. ¿Qué principio sugiere una solución?
Opciones
- Interface Segregation (Opción correcta)
- Open/Closed
- DRY
- Law of Demeter
Respuesta
Interface Segregation
Por qué
Interface Segregation dice: no obligues a una clase a depender de métodos que no usa.
Una interface grande obliga a Robot a fingir un método eat(). Divídela en interfaces pequeñas (Workable, Eatable) y deja que cada clase implemente solo lo que le aplica.
Recuerda
Muchas interfaces pequeñas son mejores que una grande.