Skip to content

Principio de Segregación de Interfaces

El Principio de Segregación de Interfaces es fundamental en la programación orientada a objetos, destacando su importancia en el desarrollo de software modular y flexible. Este principio dicta que ningún cliente, o en términos de programación, ninguna clase que utilice una interfaz, debería verse forzada a depender de métodos que no usa. La premisa subyacente es promover interfaces que sean específicas para las necesidades de los clientes que las implementan, evitando el exceso de funcionalidades innecesarias que pueden llevar a un diseño de software ineficiente y rígido.

Al profundizar en el concepto y la aplicación de este principio, encontramos su verdadero valor en la creación de interfaces bien definidas y enfocadas. En lugar de desarrollar interfaces “todoterreno” que agrupan una amplia gama de funcionalidades, este principio aboga por interfaces más pequeñas y específicas, cada una centrada en un conjunto particular de comportamientos. Este enfoque ayuda a evitar la carga innecesaria para las clases que no necesitan todas las operaciones proporcionadas por una interfaz grande y genérica.

Ejemplo sencillo

Imagina que estamos construyendo un sistema para gestionar dispositivos en una red inteligente. Estos dispositivos incluyen impresoras, cámaras de seguridad y termostatos. Cada uno de estos dispositivos tiene diferentes funcionalidades: una impresora imprime, una cámara graba y un termostato regula la temperatura.

/** Example whitout ISP principle*/
interface SmartDevice
{
public function printDocument();
public function recordVideo();
public function regulateTemperature();
}

En este caso, una clase Camera que solo necesita recordVideo tendría que implementar los otros dos métodos printDocument y regulateTemperature, lo que claramente no tiene sentido para una cámara.


Ventajas de este Enfoque

Con esta refactorización, logramos que cada clase tenga solo las dependencias que necesita, lo que resulta en un diseño más limpio y mantenible. Además, si se necesita añadir un nuevo tipo de dispositivo o modificar uno existente, podemos hacerlo sin afectar a los demás, cumpliendo así con el objetivo de bajo acoplamiento y alta cohesión.

Este ejemplo refleja mejor cómo el Principio de Segregación de Interfaces puede ser aplicado efectivamente para crear un diseño de software más modular y fácil de mantener.

Para finalizar


Principio de Segregación de Interfaces - SOLID

Ejemplo sobre el Interface Segregation Principle (o Principio de Segregación de Interfaces). Este principio que forma parte de los 5 principios de desarrollo SOLID promueve la limitación de responsabilidades a nivel de interfaces para acabar permitiendo que se respete el Single Responsibility Principle.

#Video tutorial#CodelyTV#SOLID