Na página da c2wiki sobre acoplamento e coesão :
Nomes de força / nível de coesão (interdependência dentro do módulo): (de pior para melhor, alta coesão é boa)
- Coesão Coincidental: (Pior) Os elementos do módulo não estão relacionados
- Coesão lógica: os elementos realizam atividades semelhantes às selecionadas no módulo externo, ou seja, por um sinalizador que seleciona a operação a ser executada (consulte também CommandObject). ou seja, o corpo da função é um sinalizador if-else / importante na operação
- Coesão Temporal: operações relacionadas apenas pelo tempo geral executado (ou seja, inicialização () ou FatalErrorShutdown? ())
- Coesão processual: elementos envolvidos em atividades diferentes, mas seqüenciais, cada um com dados diferentes (geralmente podem ser divididos trivialmente em vários módulos ao longo dos limites lineares da sequência)
- Coesão comunicacional: operações não relacionadas, exceto que precisam dos mesmos dados ou entrada
- Coesão sequencial: operações nos mesmos dados em ordem significativa; a saída de uma função é inserida na próxima (pipeline)
- Coesão Informacional: um módulo executa várias ações, cada uma com seu próprio ponto de entrada, com código independente para cada ação, todas executadas na mesma estrutura de dados. Essencialmente, uma implementação de um tipo de dados abstrato. ou seja, defina a estrutura da tabela de vendas_region e seus operadores: init_table (), update_table (), print_table ()
- Coesão funcional: todos os elementos contribuem para uma única tarefa bem definida, ou seja, uma função que executa exatamente uma operação get_engine_temperature (), add_sales_tax ()
(ênfase minha).
Não compreendo completamente a definição de coesão lógica. Minhas perguntas são:
- o que é coesão lógica?
- Por que o rap é tão ruim (o segundo pior tipo de coesão)?