Principio de Conocimiento Mínimo (Ley de Deméter) – Código con Bajo Acoplamiento
El Principio de Conocimiento Mínimo promueve la disminución del acoplamiento en el desarrollo de software, facilitando un código más limpio.
29 may 2025
📌 Principio de Conocimiento Mínimo (Ley de Deméter): Mejora la Mantenibilidad del Código
El Principio de Conocimiento Mínimo promueve la disminución del acoplamiento en el desarrollo de software, facilitando un código más limpio.
🧐 ¿Qué es la Ley de Deméter? 🤔
La Ley de Deméter establece que un objeto debe conocer solo a sus colaboradores más cercanos, reduciendo el conocimiento y las dependencias de otros componentes del sistema. Esto resulta en una estructura de código más flexible y fácil de mantener.
🚀 Beneficios clave de aplicar la Ley de Deméter 🌟
- Reducción de acoplamiento: Minimiza las dependencias entre clases y módulos.
- Mayor mantenibilidad: Hace más sencillo entender y modificar el código.
- Menor impacto ante cambios: Los ajustes en un módulo influyen poco en otros.
- Código más claro: Simplifica la forma en que los objetos interactúan.
🎯 Estrategias para aplicar correctamente la Ley de Deméter 🛠️
- Comunicación directa: Interactúa exclusivamente con colaboradores inmediatos.
- Evita cadenas largas de llamadas: No accedas a objetos a través de otros (ej.
obj.a.b.c
). - Define interfaces claras: Utiliza métodos explícitos para evitar conocimiento indirecto.
- Delegación: Distribuye responsabilidades de forma clara.
🛠️ Ejemplo práctico: Aplicando la Ley de Deméter en JavaScript 📈
Violación de la Ley de Deméter:
class Motor {
arrancar() {
console.log("Motor encendido");
}
}
class Automovil {
constructor() {
this.motor = new Motor();
}
}
class Persona {
constructor() {
this.auto = new Automovil();
}
iniciarAuto() {
this.auto.motor.arrancar(); // Violación (acceso indirecto)
}
}
Aplicación correcta de la Ley de Deméter:
class Motor {
arrancar() {
console.log("Motor encendido");
}
}
class Automovil {
constructor() {
this.motor = new Motor();
}
arrancarMotor() {
this.motor.arrancar();
}
}
class Persona {
constructor(auto) {
this.auto = auto;
}
iniciarAuto() {
this.auto.arrancarMotor(); // Correcto (acceso directo)
}
}
En este ejemplo, la segunda implementación cumple con la Ley de Deméter, ya que cada clase interactúa únicamente con sus colaboradores inmediatos.
📚 Consejos adicionales al aplicar la Ley de Deméter 📝
- Revisa tu código para identificar y corregir interacciones indirectas.
- Implementa métodos intermediarios para gestionar accesos.
- Mantén claridad en las responsabilidades delegadas entre módulos.
🔍 Conclusión: Código desacoplado y claro 🎉
Aplicar la Ley de Deméter es fundamental para crear un código limpio y mantenible, minimizando dependencias innecesarias y optimizando la calidad del software.