Kopplung gegen Kohäsion
Kopplung und Zusammenhalt sind zwei Konzepte, die in Java (und allen anderen objektorientierten Sprachen) enthalten sind. Die Kopplung misst, wie sehr jede der Programmmodule von den anderen Programmmodulen abhängt. Kohäsion misst, wie stark jede der Funktionen innerhalb eines Moduls zusammenhängt. Tatsächlich hat jede objektorientierte Sprache (einschließlich Java) die beiden Hauptziele, um den Zusammenhalt zu erhöhen und die Kopplung gleichzeitig zu verringern, um die effizientesten Programme zu entwickeln. Diese beiden Software -Engineering -Metriken wurden von Larry Constantine entwickelt, um die Kosten für die Änderung und Wartung von Software zu senken.
Was ist Zusammenhalt?
Kohäsion misst, wie stark jede der Funktionen innerhalb eines Programmmoduls zusammenhängt. Gut strukturierte Klassen führen zu stark kohärenten Programmen. Wenn eine bestimmte Klasse eine Reihe eng verwandter Funktionen ausführt, soll diese Klasse zusammenhängend sein. Auf der anderen Seite, wenn eine Klasse eine Reihe völlig unabhängiger Funktionen ausführt, bedeutet dies, dass die Klasse überhaupt nicht kohärent ist. Es ist wichtig zu verstehen, dass keine Kohäsivität bedeutet, dass die Gesamtanwendung nicht über die erforderliche Funktionalität verfügt. Es ist nur so, dass es ohne Kohäsion sehr schwierig sein wird, die Funktionalität zu mischen. Das Aufrechterhaltung, Ändern und Erweitern von Verhaltensweisen, die im gesamten Code verstreut sind.
Was ist Kopplung??
Die Kopplung misst, wie sehr jede der Programmmodule von den anderen Programmmodulen abhängt. Wechselwirkungen zwischen zwei Objekten treten auf, da eine Kopplung vorliegt. Lose gekoppelte Programme haben eine hohe Flexibilität und Erweiterbarkeit. Starke Kupplung ist nie gut, da ein Objekt stark von einem anderen Objekt abhängig sein kann. Dies ist ein Albtraum, wenn der Code geändert wird, da eine hohe Kopplung bedeutet, dass die Programmierer auch an verschiedenen Codeorten für eine einzige Verhaltensänderung arbeiten müssen. Eine starke Kopplung führt immer zu Programmen mit geringer Flexibilität und weniger Skalierbarkeit/Erweiterbarkeit. Bei Programmiersprachen wie Java ist es jedoch unmöglich, die Kopplung vollständig zu vermeiden. Es wird jedoch empfohlen, dass die Programmierer ihre besten Anstrengungen geben, um die Kopplung so weit wie möglich zu reduzieren. Es ist auch möglich, eine gewisse Kopplung zu haben, um Objekten zu helfen, miteinander zu interagieren, ohne die Skalierbarkeit und Flexibilität zu behindern.
Was ist der Unterschied zwischen Kopplung und Zusammenhalt?
Auch wenn Kopplung und Zusammenhalt mit der Qualität eines Moduls in der Software -Engineering zu tun haben, sind sie völlig unterschiedliche Konzepte. Kohäsionsgespräche darüber, wie viel die Funktionalität im Modul miteinander zusammenhängt, während die Kopplung damit umgeht, wie viel ein Modul von den anderen Programmmodulen innerhalb der gesamten Anwendung abhängt. Um über die beste Qualitätssoftware zu verfügen, sollten Kohäsion und Kopplung die beiden gegenüberliegenden Enden ihrer Spektren erreichen. Mit anderen Worten, lose Kopplung und starker Zusammenhalt bieten die beste Software. Private Felder, nicht öffentliche Klassen und private Methoden bieten losen Kopplung, während alle Mitglieder in der Klasse sichtbar machen und ein Paket als Standardvisionsfähigkeit haben.