Das Gesetz von Demeter
Heuristik
Um die Koppelung zwischen Objekten zu minimieren, sollten Methodenaufrufe dem Gesetz von Demeter gehorchen.
Erklärung
Das Gesetz von Demeter für Funktionen hat zum Ziel, die Koppelung zwischen Objekten zu verkleinern, indem es versucht, Sie daran zu hindern, in ein Objekt hineinzugreifen, um Zugriff auf ein drittes Objekt zu erhalten.
Das Gesetz von Demeter hilft uns, schüchternen Code zu schreiben. Schüchterner Code verrät möglichst wenig von sich und interagiert mit möglichst wenig anderen Codeelementen.
Eine Methode eines Objekts sollte nur Methoden aufrufen von:
- sich selbst
- Parametern der Methode
- in der Methode erzeugten Objekten
- Komponenten-Objekten.
Die konsequente Anwendung des Gesetz von Demeter führt zu einer Verringerung der Abhängigkeiten zwischen Modulen. Damit erhöht sich auch die Testbarkeit und die Zahl der Fehler wird gesenkt.
Vor- und Nachteile abwägen
Auch für das Gesetz von Demeter gilt: Keine Regel ohne Ausnahme. So kann es in sehr zeit-kritischen Situationen durchaus nötig sein, Module eng aneinander zu koppeln. Solange Sie sich bewusst zu diesen Schritt entschliessen, ist das kein Problem sondern eine Entscheidung, eine Qualitätsanforderung (Flexibilität und Wartbarkeit) zu Gunsten einer höher gewichteten Qualitätsanforderung (Geschwindigkeit) aufzugeben.