Principio de Conocimiento Mínimo (Ley de Deméter) – Código con Bajo Acoplamiento

Descubre cómo aplicar el Principio de Conocimiento Mínimo, también conocido como Ley de Deméter, para reducir el acoplamiento y mejorar la calidad y mantenibilidad de tu código.

📌 Principio de Conocimiento Mínimo (Ley de Deméter)

La Ley de Deméter (Law of Demeter), también conocida como el Principio de Conocimiento Mínimo, establece que un objeto debe tener conocimiento y acceso limitado únicamente a sus objetos más cercanos, reduciendo así el acoplamiento del sistema.


🧐 ¿Qué es la Ley de Deméter?

La Ley de Deméter busca que los objetos o módulos tengan la menor cantidad posible de conocimiento sobre otros componentes del sistema. De esta manera, se disminuyen dependencias innecesarias, resultando en código más flexible y mantenible.


🚀 Beneficios clave de aplicar la Ley de Deméter

  • Reducción de acoplamiento: Menos dependencias directas entre componentes.
  • Mayor mantenibilidad: Facilita la comprensión y cambios del código.
  • Menor impacto ante cambios: Cambios en un módulo afectan mínimamente a otros.
  • Código claro y entendible: Simplifica interacciones y dependencias.

🎯 Estrategias para aplicar correctamente la Ley de Deméter

  1. Comunicación directa: Habla solo con tus colaboradores inmediatos.
  2. Evita cadenas largas de llamadas: No accedas a objetos indirectos (ej. obj.a.b.c).
  3. Define interfaces claras: Usa interfaces y métodos explícitos para interacción.
  4. Delegación: Delega responsabilidades claramente definidas.

🛠️ Ejemplo práctico: Aplicando la Ley de Deméter en JavaScript

⚠️ Violación de la Ley de Deméter (alto acoplamiento):

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 (conocimiento indirecto)
  }
}

Aplicando correctamente 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 (conocimiento directo)
  }
}

const miAuto = new Automovil();
const conductor = new Persona(miAuto);
conductor.iniciarAuto();

Este enfoque reduce el acoplamiento y hace que cada clase interactúe únicamente con sus colaboradores inmediatos.


📚 Consejos adicionales al aplicar la Ley de Deméter

  • Revisa regularmente tu código para detectar interacciones indirectas.
  • Implementa métodos intermediarios que gestionen el acceso a objetos secundarios.
  • Asegura claridad en la delegación de responsabilidades entre módulos.

🔍 Conclusión: Código desacoplado y claro

La Ley de Deméter es esencial para lograr un código limpio, desacoplado y fácil de mantener. Aplicando este principio, minimizas dependencias innecesarias y simplificas significativamente la estructura de tu software.

Adopta esta ley en tu práctica diaria para optimizar tu código y mejorar su calidad.


© 2025 Fábrica de Apps. Todos los derechos reservados.

WhatsApp Icon