Coesão
Definição
Coesão (cohesion) é o grau em que os elementos internos de um módulo, classe ou função estão relacionados entre si e colaboram para cumprir uma única responsabilidade.
Dizemos que um módulo tem alta coesão quando todas as suas partes contribuem diretamente para uma única responsabilidade ou funcionalidade. Quando há muitas funcionalidades desconexas, dizemos que o módulo tem baixa coesão.
Por que é importante
Alta coesão torna o código mais fácil de entender, manter e evoluir. Cada módulo tem uma responsabilidade bem definida, o que reduz confusão, melhora a legibilidade e facilita testes isolados.
Exemplo prático (Python)
Uma classe com baixa coesão pode misturar responsabilidades sem relação entre si:
class Util:
def enviar_email(self): ...
def gerar_pdf(self): ...
def calcular_frete(self): ...
def converter_data(self): ...
Já uma classe com alta coesão tem métodos diretamente relacionados à sua responsabilidade:
class ServicoEmail:
def enviar_email(self): ...
def validar_endereco(self): ...
def agendar_envio(self): ...
No segundo caso, a coesão é maior porque todos os métodos lidam com envio de e-mails — um domínio bem definido.
Consequências da baixa coesão
- Dificulta leitura e entendimento do código
- Prejudica testes e modificações isoladas
- Aumenta o risco de efeitos colaterais
- Reduz reutilização e favorece acoplamento excessivo