domingo, 30 de março de 2008

Aulas 14 e 15 - Coesão

Alta coesão

Problema e como gerenciar a complexidade: a coesão mede quão focada ou relacionada estão os módulos de uma classe.
Uma classe com baixa coesão faz muitas coisas não relacionadas. Tais classes são indesejáveis, pois sofrem dos seguintes problemas que são difíceis de compreender, difícil de reutilizar, difícil de manter e delicadas, ou seja, constantemente afetadas pelas mudanças.
As classes de coesão baixa geralmente representam um grau de abstração muito alto e de grande granularidade, ou então assumiram responsabilidades que deceriam ter sido delegadas a outros objetos.
Temos 4 tipos de coesão funcional que são:

Coesão muito baixa: uma única classe é responsável por muitas coisas em áreas funcional muito diferente.

Coesão Baixa: uma classe é a única responsável por uma tarefa não complexa em uma área funcional.

Coesão Alta: Uma classe tem responsabilidades moderadas e, uma área funcional e colabora com outras classes para realizar tarefas.

Coesão moderada: uma classe tem peso leve e responsabilidades exclusivas em algumas áreas logicamente relacionadas ao conceito da classe, mas não uma com a outra.

Coesão coincidental

Não existe nenhuma coesão entre os módulos, eles se agrupam por coincidências.

Coesão Lógica

Neste padrão tem que ser respeitado como um baixo acoplamento, pois a alta coesão deve ser mantida dentro do método.

Coesão Temporal

Os módulos estão coesos, por algum evento temporal.

Coesão comunicação

São os métodos que agem sobre o mesmo dado, mas isso não significa que sejam métodos coesos, portanto não deveriam estar juntos.

Coesão seqüencial

Nela os módulos estão juntos apenas porque a saída de um é à entrada do outro.

Coesão Funcional

Os módulos estão coesos de tal forma a trabalhar num mesmo objetivo, ou seja, todos os métodos estão focados em um único objetivo.
Coesão Procedural

Faz com que os módulos se agrupem por procedimentos, mesmo não sendo coesos.

Nenhum comentário: