El penúltimo principio, que corresponde a la letra I dentro de SOLID es el principio de Segregación de Interfaces o Interface Segregation Principle si lo traducimos al inglés.
Este principio nos habla de como los “clientes” no deberían ser forzados a depender de métodos que no utilicen, refiriéndonos por cliente a aquello que interactúa con alguna interface. En algún momento hemos tenido que implementar implementar objetos que dependen ciertas interfaces o clases, sin embargo existen métodos que por la naturaleza de la clase no son necesarios.
En este sentido es preferible tener interfaces más pequeñas que grandes y llenas con funcionalidades que muy probablemente no vayamos a ocupar en todos los casos. Esto también importante si seguimos el Principio de Responsabilidad Única.

Cuando no cumplimos con este principio obtenemos código acoplado a distintas implementaciones, dificultando así su mantenimiento, la fragilidad al no poder “tocar” con mucha facilidad módulos de nuestro software y además de ser difícil de probar.
Pero, ¿Qué podemos hacer para identificar este tipo de situaciones?
- Identifica tus interfaces largas, probablemente puedan romperse en interfaces más pequeñas y la original puede heredar de estar para mantener la compatibilidad en tu sistema.
- Podrías definir tus interfaces en base a tu cliente, de esta manera implementarás únicamente lo que necesites.
Espero que estos pequeña introducción y tips te sirven para mejorar la calidad de tus desarrollos y por su puesto ahondar más en el tema.