Cohesión Baja (LCOM4)
ID: lcom | Severidad: Medium (default)
La cohesión mide qué tan estrechamente relacionados están los métodos y campos de una clase. archlint utiliza la métrica LCOM4 (Lack of Cohesion of Methods).
Por qué esto es un problema
- Violación del SRP: Es probable que la clase esté haciendo dos o más cosas no relacionadas.
- Fragilidad: Cambiar una parte de la clase podría afectar a partes no relacionadas.
- Difícil de Reutilizar: No puedes usar una parte de la clase sin arrastrar lógica no relacionada.
Cómo solucionarlo
- Extract Class: Divide la clase en dos o más clases más pequeñas, cada una con una única responsabilidad.
- Move Method: Mueve los métodos que no utilizan el estado de la clase a una ubicación más apropiada (por ejemplo, un módulo de utilidades).
Configuración
yaml
rules:
lcom:
severity: medium
max_lcom: 4
min_methods: 3