RSS RSS

Clean Code Developer


Navigation





Search the wiki
»

PoweredBy

Law of Demeter

RSS
Weitergeleitet von: LoD
Warum?
Abhängigkeiten von Objekten über mehrere Glieder einer Dienstleistungskette hinweg führen zu unschön enger Kopplung.

EvolvierbarkeitKorrektheitProduktionseffizienzReflexion
+++
Single Developer

Beim Law of Demeter geht es darum, das Zusammenspiel von Objekten auf ein gesundes Maß zu beschränken. Man kann es vereinfacht umschreiben mit "Don't talk to strangers". Nach dem Law of Demeter soll eine Methode nur folgende andere Methoden verwenden:
  • Methoden der eigenen Klasse
  • Methoden der Parameter
  • Methoden assoziierter Klassen
  • Methoden selbst erzeugter Objekte

Allerdings: Es ist zu berücksichtigen, dass ab und zu auch reine Datenhaltungsklassen Sinn ergeben. Auf diese muss man das Law of Demeter natürlich nicht anwenden. Es kann z.B. durchaus sinnvoll sein, die Konfigurationsdaten in mehrere Klassen hierarchisch zu verteilen, so dass sich am Ende folgender Zugriff auf einen Wert ergeben könnte:

int margin = config.Pages.Margins.Left;

Würde man hier das Law of Demeter anwenden, wäre nur der Zugriff auf config.Pages gestattet.

ScrewTurn Wiki version 3.0.3.555. Some of the icons created by FamFamFam.