Kopplung, Zusammenhalt und das Gesetz von Demeter

DasGesetz von Demeter Gibt an, dass Sie nur mit Objekten sprechen sollten, die Sie direkt kennen. Führen Sie keine Methodenverkettung durch, um mit anderen Objekten zu kommunizieren. Wenn Sie dies tun, stellen Sie in unangemessener Weise unzulässige Verknüpfungen mit den Zwischenobjekten herKupplung Ihr Code zu anderem Code.

Das ist schlecht.

Die Lösung wäre, dass die Klasse, die Sie kennen, im Wesentlichen einfache Wrapper verfügbar macht, die die Verantwortung auf das Objekt delegieren, mit dem sie die Beziehung hat.

Das ist gut.

Aber das scheint dazu zu führen, dass die Klasse niedrig istZusammenhalt. Es ist nicht mehr nur für genau das verantwortlich, was es tut, sondern es hat auch die Delegierten, die den Code in gewisser Weise weniger zusammenhängend machen, indem sie Teile der Schnittstelle des zugehörigen Objekts duplizieren.

Das ist schlecht.

Führt dies wirklich zu einer Verringerung des Zusammenhalts? Ist es das kleinere von zwei Übeln?

Gehört dies zu den Grauzonen der Entwicklung, in denen Sie diskutieren können, wo sich die Linie befindet, oder gibt es strenge grundsätzliche Möglichkeiten, um zu entscheiden, wo die Linie gezogen werden soll, und nach welchen Kriterien Sie diese Entscheidung treffen können?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage