Ley de Demeter
La Ley de Demeter establece que un objeto debe comunicarse solo con sus relaciones directas, evitando depender de estructuras internas de otros objetos.
El objetivo de la Ley Demeter es reducir el acoplamiento entre clases.
1. Código Malo #
Cargando actividad al acercarte…
Problema: Este código depende de múltiples niveles de objetos. Si cambia la estructura interna, el código se rompe.
Solución: Expone un método directo (
getCalle) para acceder a la información, sin depender de estructuras internas.
2. Código Bueno #
Cargando actividad al acercarte…
Resumen del tema
Conceptos clave #
- Ley de Demeter (Principio de Menor Conocimiento): "habla solo con tus amigos directos y no con los amigos de tus amigos".
- Evitar Cadenas de Llamadas Largas (Train Wrecks): encadenamientos como
a.getB().getC().getD()exponen detalles de implementación interna y aumentan drásticamente el acoplamiento. - Delegación y Encapsulación: añadir métodos delegados en el objeto contenedor (
usuario.getCalle()) para proteger la estructura interna frente a cambios.
Qué debes recordar #
No atravieses múltiples niveles de objetos para obtener un dato; pide al objeto directamente lo que necesitas en lugar de navegar sus entrañas.