La Ley de Demeter, también conocida como el principio de “no hablar con extraños”, es una regla de diseño orientada a objetos que promueve el bajo acoplamiento entre clases. Fue formulada en los años 80 en el contexto de la programación orientada a objetos, y su objetivo es hacer que el código sea más mantenible, modular y fácil de entender.
¿Qué dice esta ley? Una clase debe comunicarse solo con sus amigos cercanos. Es decir, debe invocar métodos únicamente de:
- Ella misma
- Sus atributos directos
- Parámetros recibidos
- Objetos que crea directamente
¿Qué evita? Evita cadenas de llamadas como obj.getA().getB().doSomething()
, que hacen que el código dependa de estructuras internas de otros objetos. Esto rompe el encapsulamiento y hace que el sistema sea frágil ante cambios.
Ejemplo práctico:
// Violación de la ley
cliente.getCuenta().getSaldo().actualizar();
// Cumpliendo la ley
cliente.actualizarSaldo();
Conclusión: Aplicar la Ley de Demeter no solo mejora la calidad del código, sino que también facilita su evolución. Es una forma elegante de decir: “No te metas donde no te llaman”.