Baixa Coesão (LCOM4)
ID: lcom | Gravidade: Medium (default)
A coesão mede o quão intimamente relacionados estão os métodos e campos de uma classe. o archlint usa a métrica LCOM4 (Lack of Cohesion of Methods).
Por que isso é um smell
- Violação do SRP: A classe provavelmente está fazendo duas ou mais coisas não relacionadas.
- Fragilidade: Alterar uma parte da classe pode afetar partes não relacionadas.
- Difícil de Reutilizar: Você não pode usar uma parte da classe sem trazer lógica não relacionada.
Como consertar
- Extract Class: Divida a classe em duas ou mais classes menores, cada uma com uma única responsabilidade.
- Move Method: Mova métodos que não usam o estado da classe para um local mais apropriado (por exemplo, um módulo de utilitários).
Configuração
yaml
rules:
lcom:
severity: medium
max_lcom: 4
min_methods: 3