Interface Segregation Principle
Um objeto não deve depender de ou implementar um interface que não necessita.
- Evitar interfaces com muitos métodos, pois isso é problemático. Tente ter interfaces pequenas.
- Exemplo:
- Interface impressora que tem métodos imprime() e escaneia(). Essa interface podem ser implementadas por HP e Epson, por exemplo.
- Porém, no futuro é desenvolvida uma impressora que também tem a função de enviaFax(). Se esse método for inserido na interface impressora, vai obrigar que as implementações HP e Epson tenha um método que não necessita.
- Portanto, o recomendado é criar interfaces pequenas, com métodos que o cliente precisa.
- Atenção com os extremos: cuidado para não criar um monte de interfaces com um método só.
Referências
- Dev Eficiente (Diretor). (2023, agosto 3). Curso de SOLID: O Princípio da Segregação de Interfaces (ou Interface Segregation Principle, ISP). https://www.youtube.com/watch?v=R824QDnOB3A
- Dev Eficiente (Diretor). (2020, julho 23). SOLID #4: Princípio de segregação pela interface (ISP). https://www.youtube.com/watch?v=0Jv31svi0qA