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 :)

24 vistas0 comentarios

Entradas Recientes

Ver todo

©2020 por Juanma Perez.