Interface Segregation Principle
Não obrigue ninguém a depender do que não usa
Interfaces devem ser específicas para cada cliente.
Explicando como se você tivesse 5 anos
Agora sim! 🎉
Se você vai ao restaurante só para beber suco, não precisa saber fazer todos os pratos do cardápio!
Por que isso é uma Red Flag?
Atenção ao problema! ⚡
Interfaces gordas forçam implementações a incluir métodos desnecessários, criando acoplamento desnecessário e implementações vazias ou com exceções. Indica design que não considerou as necessidades específicas de cada cliente. A oportunidade está em quebrar interfaces grandes em interfaces menores e mais coesas.
Para que serve
Manter interfaces pequenas e focadas, evitando dependências desnecessárias.
Explicação Detalhada
O Princípio da Segregação de Interface afirma que nenhum cliente deve ser forçado a depender de métodos que não usa. Em vez de uma interface grande com muitos métodos, crie interfaces menores e específicas. Exemplo ruim: IWorker com métodos work() e eat(), forçando robôs a implementar eat(). Exemplo bom: IWorkable com work() e IFeedable com eat().
História
Uncle Bob formulou o ISP após observar que interfaces "gordas" (com muitos métodos) forçavam classes a implementar métodos que não usavam, criando dependências desnecessárias.
Quem Inventou
Robert C. Martin (Uncle Bob)
Ano: 2000
Compartilhar
Relacionadas
Explicando como se você tivesse 5 anos
Agora sim! 🎉
Se você vai ao restaurante só para beber suco, não precisa saber fazer todos os pratos do cardápio!
Por que isso é uma Red Flag?
Atenção ao problema! ⚡
Interfaces gordas forçam implementações a incluir métodos desnecessários, criando acoplamento desnecessário e implementações vazias ou com exceções. Indica design que não considerou as necessidades específicas de cada cliente. A oportunidade está em quebrar interfaces grandes em interfaces menores e mais coesas.
História
Uncle Bob formulou o ISP após observar que interfaces "gordas" (com muitos métodos) forçavam classes a implementar métodos que não usavam, criando dependências desnecessárias.
Quem Inventou
Robert C. Martin (Uncle Bob)
Ano: 2000
Para que serve
Manter interfaces pequenas e focadas, evitando dependências desnecessárias.
Explicação Detalhada
O Princípio da Segregação de Interface afirma que nenhum cliente deve ser forçado a depender de métodos que não usa. Em vez de uma interface grande com muitos métodos, crie interfaces menores e específicas. Exemplo ruim: IWorker com métodos work() e eat(), forçando robôs a implementar eat(). Exemplo bom: IWorkable com work() e IFeedable com eat().
Heurísticas Relacionadas
Fontes e Referências
Quer se aprofundar? Confira essas fontes oficiais: