{
  "id": 2139383,
  "title": "PRINCÍPIO DA SEGREGAÇÃO DE INTERFACES",
  "url": "https://urgent.news/2026/08/20/principio-da-segregacao-de-interfaces",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-08-20T13:03:04.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/victorlisbronzo/principio-da-segregacao-de-interfaces-72a"
  },
  "original_language": "pt",
  "account": "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.\n\nUm 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\".\n\nPara 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.\n\nValorizando 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.",
  "summary": "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): // ❌…",
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}