14. Acoplamento de Componentes
ADP, SDP, SAP: como componentes se relacionam.
Resumo
- ADP (Dependências Acíclicas): grafo de componentes sem ciclos (DAG). Quebre ciclos com DIP ou novo componente.
- Estrutura de componentes não é top-down: cresce com o sistema, reflete buildability e manutenção.
- SDP (Dependências Estáveis): dependa no sentido da estabilidade. I = Fan-out / (Fan-in + Fan-out).
- SAP (Abstrações Estáveis): componente estável deve ser abstrato. A = Na / Nc.
- Sequência Principal: A + I = 1. Distância D = |A + I − 1|. Zona de dor (0,0); zona de inutilidade (1,1).
Perguntas-chave
responda de cabeça, depois abraComo quebrar um ciclo de dependência entre componentes?
Aplicar DIP (interface do lado de quem é dependido) ou criar novo componente com as classes compartilhadas.
Como calcular a instabilidade I?
I = Fan-out / (Fan-in + Fan-out). 0 = máxima estabilidade; 1 = máxima instabilidade.
O que é a zona de dor?
Componentes estáveis e concretos (A≈0, I≈0): difíceis de mudar e não extensíveis. Ex.: esquema de banco.
Exercícios de fixação
0/5 respondidas1.
Um componente tem 3 dependências de entrada (fan-in) e 1 de saída (fan-out). Qual a instabilidade I?
2.
Um componente com A = 0 e I = 0 está em qual região?
3.
O componente Entities passa a depender de Authorizer, que depende de Interactors, que depende de Entities. Como corrigir?
4.
Um componente com A = 0,8 e I = 0,7 tem qual distância D da sequência principal?
5.
Segundo o SDP, qual dependência é problemática?