DEV Community

Cover image for Acoplamento e Coesão

Acoplamento e Coesão

Conceitos de Acoplamento

  • Acoplamento: Indica a medida em que um módulo conhece e depende de outros.
  • Baixo Acoplamento: As mudanças em um módulo têm menos impacto nos outros.
  • Alto Acoplamento:  As alterações em um módulo podem afectar vários outros.

Conceitos de Coesão

  • Coesão: Indica o quão bem as responsabilidades de um módulo estão agrupadas.
  • Alta Coesão: O módulo tem responsabilidades relacionadas e está focado em realizar uma única tarefa.
  • Baixa Coesão: As responsabilidades estão menos relacionadas.

Abordagens de comunicação

  • Comunicação por mensageria.
  • Comunicação Tradicional.

Comunicação por mensageria

  • Comunicação assíncrona.
  • Módulos enviam e recebem mensagens.
  • Definição de contratos de mensagens via interfaces.
  • Promove o desacoplamento entre módulos.
  • Módulos se comunicam via Message Bus
  • Ferramentas: RabbitMQ, Kafka, etc.

Comunicação Tradicional

  • Chamada de funções entre módulos.
  • Uso de objectos, structs, traits, entre pacotes.
  • Um módulo chama o outro módulo.
  • Uso de namespaces, pacotes, modules.

Observações

  • É difícil garantir desacoplamento total
  • Há sempre alguma dependência entre os módulos.
  • Mesmo com uso de contratos, interfaces e mensageria, haverá um nível de dependência.
  • É normal existir dependência entre um módulo e outro.

Código Fonte:

Image description

Image description

Image description

Image description

Image description

Image description

Top comments (0)