Frage

Ich versuche, die Konzepte der Kopplung und Kohäsion auf eine prägnante Definition zusammenzufassen.Kann mir jemand eine kurze und verständliche Erklärung geben (kürzer als die Definitionen auf Wikipedia). Hier Und Hier)?Wie interagieren sie?

Danke.

Hat jemand ein gutes, kurzes Beispiel?

War es hilfreich?

Lösung

Kupplung

  • Lose:Du und der Typ vom Supermarkt.Sie kommunizieren über ein klar definiertes Protokoll, um Ihre jeweiligen Ziele zu erreichen – Sie zahlen Geld, er lässt Sie mit der Tüte Cheetos hinausgehen.Jeder von Ihnen kann ersetzt werden, ohne das System zu stören.

  • Eng:Du und deine Frau.

Zusammenhalt

  • Niedrig:Der Supermarkt.Dort erhalten Sie alles von Benzin über Milch bis hin zu Geldautomaten.Produkte und Dienstleistungen haben wenig gemeinsam, und der Komfort, sie alle an einem Ort zu haben, reicht möglicherweise nicht aus, um den daraus resultierenden Kostenanstieg und den Qualitätsverlust auszugleichen.

  • Hoch:Der Käseladen.Sie verkaufen Käse.Nichts anderes.Wenn es um Käse geht, sind sie allerdings nicht zu schlagen.

Andere Tipps

Kopplung – Ein Maß dafür, wie stark ein Modul (Paket, Klasse, Methode) von anderen Modulen abhängig ist.Es ist wünschenswert, die Kopplung zu reduzieren bzw. die Abhängigkeit eines bestimmten Moduls von den anderen Modulen eines Systems zu verringern.

Kohäsion – Ein Maß dafür, wie eng die Mitglieder (Klassen, Methoden, Funktionalität innerhalb einer Methode) eines Moduls mit den anderen Mitgliedern desselben Moduls verbunden sind.Es ist wünschenswert, die Kohäsion zu erhöhen, da dies anzeigt, dass ein Modul eine ganz bestimmte Aufgabe hat und nur diese Aufgabe erledigt.

Eine der umfassendsten Diskussionen über Software-Designkonzepte im Zusammenhang mit OO (einschließlich dieser) stammt von Bertrand Meyer Objektorientierte Softwarekonstruktion.

In Bezug auf „Kopplung“ gibt er seine Regel für schwache Kopplung/kleine Grenzflächen wie folgt an:

Wenn zwei Module kommunizieren, sollten sie möglichst wenig Informationen austauschen.

Meyers Material zum Thema Zusammenhalt lässt sich nie auf eine einzige prägnante Aussage reduzieren, aber ich denke, dieser Satz stammt von Steve McConnell Code abgeschlossen fasst es ganz gut zusammen:

Zusammenhalt bezieht sich darauf, wie genau alle Routinen einer Klasse oder der gesamte Code einer Routine einen zentralen Zweck unterstützen

Kopplung bedeutet Abhängigkeit von anderen.
Zusammenhalt bedeutet Vollständigkeit mit sich selbst.

Eine schnelle und unkomplizierte Möglichkeit, die Kopplung zu messen, ist die Messung Ihrer import (oder ähnliche) Aussagen.

"Die Kopplung ist ein Maß für die gegenseitigen Abhängigkeiten zwischen Modulen, die minimiert werden sollten" "Kohäsion, eine Qualität, die es zu maximieren gilt, konzentriert sich auf die Beziehungen zwischen den Tätigkeiten, die von den einzelnen Modulen durchgeführt werden."

zitiert aus diesem Artikel: http://steve.vinoski.net/pdf/IEEE-Old_Measures_for_New_Services.pdf

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top