Alta coesão indica qual o grau de relacionamento entre os módulos de uma classe, sintonia que há entre eles, o grande problema de se ter uma alta coesão é o gerenciamento da complexidade, deve-se manter esse tipo de coesão, faz com que elimina ligações, reduz métodos sem ligações entre eles, um trabalha sinergia do outro.
Baixa Coesão podemos citar vários problemas encontrados:
Difícil de entender – muitos métodos numa mesma classe;
Difícil de reusar- muitas classes diferentes para gerenciar;
Difícil de manter – dificuldade no entendimento das classes;
Assumir responsabilidade demais – há uma sobrecarga de classes com muitas responsabilidades;
Solução para os problemas relacionados acima:
Cada classe com sua própria responsabilidade, por exemplo, um módulo de venda não tem a responsabilidade de conectar com o Banco não é missão dela.
Temos alguns tipos de coesão:
- Coincidental
- Lógica
- Temporal
- Procedural
- De comunicação
- Sequencial
- Funcional
Conseqüências de Alta Coesão
- Lógica
- Temporal
- Procedural
- De comunicação
- Sequencial
- Funcional
Conseqüências de Alta Coesão
1 – Melhora o reuso
2 – Sistemas mais fáceis de manter
3 – Melhora o Entendimento
4 – Melhora a granularidade e conseqüentemente aumenta o reuso
Padrão Controlador
Se preocupa com eventos da classe cadidata para tratar isso, normalmente para cada caso de uso tem que ter um controlador, um controlador apenas recebe o evento e passa adiante, delega para alguém.