PRINCÍPIO DA SEGREGAÇÃO DE INTERFACES
Nenhuma classe deve ser dependente de métodos que não precisa. Um exemplo seria uma interface “Máquina”, que força os métodos print( ) , scan( ) e fax( ) . Nem toda máquina tem esses 3 métodos. Então criamos as interfaces IPrinter , IScanner e IFax . Agora uma máquina assina apenas os contratos que realmente precisa e cumpre apenas esses. Exemplo de Código (Opcional - Ilustrando o texto): // ❌…
Segregação de Interfaces (ISP) é um princípio central de design de software que afirma que uma classe nunca deve depender de métodos que não utiliza. Em vez disso, a interface deve ser flexível e reutilizável para diferentes casos. A criação de interfaces genéricas com métodos desnecessários pode prejudicar essa reutilização e acelerar o acoplamento do código.
Um exemplo clássico seria um sistema de blog onde todos os usuários assinam o mesmo contrato de ações. Isso resulta em interfaces com excesso de funcionalidade, como uma interface "UserActions" com métodos como "readPost", "writePost", e "banUser". No entanto, usuários comuns não precisam ou não devem ter acesso a métodos como "banUser".
Para solucionar esse problema, o ISP sugere que o contrato seja dividido em pequenos interfaces bem definidos. Em vez de uma única interface "UserActions", podemos ter interfaces menores como "IReader", "IWriter" e "IAdmin". Isso permite que os usuários assinem apenas os métodos relevantes para seu papel na aplicação.
Valorizando a segregação de interfaces, o código se torna mais modular, flexível e fácil de manter. Mudanças no comportamento de um contrato específico, como "banUser", não exigirão atualizações em classes como "StandardUser". Em vez disso, o sistema pode ser construído como um conjunto de Lego, permitindo que blocos (contratos) se encaixem conforme necessário.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.