SOLID: Segregación de la Interfaz
Este principio es más sencillo de lo que su nombre podría hacernos creer.
Uno de los problemas a los que nos podemos enfrentar es tener una interfaz que tenga excesiva funcionalidad, y al implementar esa interfaz no hacer uso de estos métodos.
Pongamos un ejemplo sencillo para entenderlo.
Tenemos una interfaz llamada Repositorio que ofrece operaciones de lectura y escritura para base de datos.
public interface Repositorio {
public void crear() {
...
}
public void actualizar() {
...
}
public void eliminar() {
...
}
public void obtener() {
...
}
}
Esta interfaz nos permite operaciones de lectura y escritura, pero imaginemos que queremos implementar esta interfaz, pero solo vamos a usarlo para lectura, no tendría sentido tener todos esos métodos, por lo que lo ideal sería esto.
public interface Lectura {
public void obtener() {
...
}
}
public interface Escritura {
public void crear() { ... }
public void actualizar() { ... }
}
public interface Eliminar {
public void eliminar() { ... }
}
Una vez tenemos las interfaces separadas, y en las que cada una se encarga de algo concreto, podemos implementarlas como deseemos.
public class DBUsuario implements Lectura, Eliminar { ... }
public class DBCoche implements Lectura { ... }
public class DBMaquina implements Lectura, Escritura, Eliminar { ... }
Es muy parecido al principio de responsabilidad única pero con interfaces, como ves es muy sencillo de aplicar, ¿qué te ha parecido?
Recuerda que puedes ver otros tutoriales en mi web y artículos en mi blog, además de seguirme en Twitter, espero que te haya gustado, nos vemos en la próxima :)