8. OCP: Princípio do Aberto/Fechado
Aberto para extensão, fechado para modificação.
Resumo
- Artefato aberto para extensão, fechado para modificação (Bertrand Meyer, 1988).
- Meta: estender comportamento sem alterar código existente. Mudança grande = arquitetura falha.
- Exemplo: relatório financeiro web + impressão. Separar processamento de apresentação (SRP) e organizar dependências (DIP).
- Hierarquia de proteção: Interactor (regras) no topo, mais protegido. Views no fundo, menos protegidas.
- Dependências apontam para o nível mais alto. Interfaces controlam direção e ocultam informação (transitividade).
Perguntas-chave
responda de cabeça, depois abraO que significa "fechado para modificação"?
Novas funcionalidades entram adicionando código, não alterando o existente.
Qual componente fica mais protegido no exemplo do relatório?
O Interactor, que contém as regras de negócio. Nada nele muda por causa de view, banco ou controller.
Como o OCP se realiza na arquitetura?
Separando por motivo de mudança (SRP) e organizando dependências (DIP) em hierarquia que protege o alto nível.
Exercícios de fixação
0/5 respondidas1.
Um sistema web precisa gerar o mesmo relatório também em PDF impresso. Segundo o OCP, qual o cenário ideal?
2.
No exemplo do capítulo, qual componente está mais protegido contra mudanças?
3.
Se A deve ser protegido de mudanças em B, então:
4.
Qual o papel das interfaces além de inverter dependência, segundo o capítulo?
5.
Quais princípios o autor usa para alcançar o OCP no exemplo?