Law of Demeter
Architecture 🟡 MidDefinition
Un objet ne devrait parler qu'a ses amis proches, pas aux amis de ses amis. Evite les chaines d'appels (train wreck) qui creent du couplage profond.
Analogie
Au restaurant, tu parles au serveur, pas directement au cuisinier ni au fournisseur du cuisinier.
Exemple de code
// Mauvais (train wreck):
user.getAddress().getCity().getZipCode()
// Bon:
user.getZipCode() // delegation interne
Cas d'usage
Reduire le couplage entre objets et rendre le code plus resilient aux changements.
Anti-pattern
Chaines de getters qui exposent la structure interne de tout le graphe d'objets.