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