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.
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.