[Arquitetura] Coupling, o inimigo em comum - Parte 4
E para finalizar nosso papo sobre “Coupling, o inimigo em comum” vamos falar de coesão, claro! Coesão são as partes que devem ser contidas no mesmo módulo, ou seja, um acoplamento que faz sentido. Funcionalidades parecidas e que se complementam devem estar próximas umas das outras.
Tenha em mente que sempre que separamos um módulo com coesão, estamos aumentando o acoplamento. Com isso vamos dar uma olhada nos tipos de coesão que existem:
Functional Cohesion
Quando todas as partes do módulo se relacionam fazendo com que o módulo tenha tudo para funcionar.
Sequential Cohesion
Quando dois módulos interagem de maneira que o output de um vira o input do outro.
Communicational Cohesion
Quando dois módulos operaram juntos para criar um output.
Procedural Cohesion
Quando dois módulos devem ser executados em uma ordem específica.
Temporal Cohesion
Quando módulos trabalham juntos de forma temporária para servir um outro módulo.
Logical Cohesion
Quando módulos compartilham uma lógica de operação e não dados.
Coincidental Cohesion
Quando os componentes do módulos não fazem nada juntos, apenas estão agrupados no mesmo lugar.