5.2. Heurísticas de projeto
Abstração, encapsulamento, esconder segredos, isolar o que muda e manter o acoplamento baixo.
Resumo
- Ache objetos do mundo real; forme abstrações consistentes; encapsule detalhes de implementação.
- Esconda segredos (Parnas): pergunte "o que devo esconder?". Fontes de complexidade e de mudança.
- Isole áreas que mudam: regras de negócio, dependências de hardware, E/S, recursos não padrão, limites de tamanho.
- Acoplamento fraco: pequeno, visível e flexível. Pior tipo: semântico (depende de como o outro funciona por dentro).
- Use padrões de projeto, coesão alta, hierarquias, contratos, projeto para teste e pontos centrais de controle.
Perguntas-chave
responda de cabeça, depois abraO que é esconder informação?
Projetar cada classe para guardar um segredo (uma decisão de projeto ou fonte de complexidade) que o resto do sistema não precisa conhecer.
O que é acoplamento semântico?
Quando um módulo depende do funcionamento interno de outro, por exemplo da ordem em que ele chama rotinas ou de um flag de controle.
Quais áreas tendem a mudar?
Regras de negócio, dependências de hardware, entrada e saída, recursos não padrão da linguagem, áreas difíceis de projeto, variáveis de estado e limites de tamanho.
Exercícios de fixação
0/5 respondidas1.
A pergunta central do esconder informação (information hiding) é:
2.
O módulo A só funciona se o módulo B chamar
init() antes de processar(), e nada no código garante isso. Que tipo de acoplamento é esse?3.
Um sistema usa a alíquota de imposto em 30 lugares. A heurística de isolar áreas de mudança sugere:
4.
Qual destas características não descreve acoplamento fraco segundo o livro?
5.
Qual o principal benefício de reconhecer um padrão de projeto conhecido (ex.: Factory, Observer)?