Der Begriff Kohäsion ist tatsächlich etwas kontraintuitiv für das, was er im Bereich der Softwareentwicklung bedeutet.
Kohäsion bedeutet im Allgemeinen, dass etwas gut zusammenhält, vereint ist und durch starke Bindung wie molekulare Anziehung charakterisiert wird. In der Softwareentwicklung bedeutet dies jedoch, dass man nach einer Klasse strebt, die idealerweise nur eine Sache tut, sodass mehrere Teilmodule nicht einmal beteiligt sind.
Vielleicht können wir es so sehen. Ein Teil hat die höchste Kohäsion, wenn er der einzige Teil ist (nur eine Sache tut und nicht weiter aufgeteilt werden kann). Genau das wird in der Softwareentwicklung angestrebt. Kohäsion ist einfach ein anderer Begriff für "eine Verantwortung" oder "Trennung von Bedenken".
Der Begriff Kopplung hingegen ist ziemlich intuitiv, was bedeutet, dass ein Modul nicht von zu vielen anderen Modulen abhängt und dass diejenigen, mit denen es verbunden ist, leicht ausgetauscht werden können, zum Beispiel die Einhaltung des Liskov-Substitutionsprinzips.
3 Stimmen
Schauen Sie es sich an: msdn.microsoft.com/en-us/magazine/cc947917.aspx
6 Stimmen
Ich möchte auf diesen Artikel hinweisen: S.O.L.I.D. Softwareentwicklung, ein Schritt nach dem anderen. Grz, Kris.
5 Stimmen
Dies ist der neueste Beitrag zu diesem Thema.
4 Stimmen
Siehe auch: stackoverflow.com/questions/39946/coupling-and-cohesion
1 Stimmen
Tatsächlich handelt es sich hierbei um eine Kopie von jener.
0 Stimmen
Ich bin in den letzten Jahren immer wieder auf diese Seite zurückgekommen und habe oft festgestellt, wie subjektiv diese Antworten sind. Meiner Meinung nach liegt das daran, dass die Worte subjektiv verwendet werden. Wenn wir die Kombination von 2 Dingen mögen, sagen wir "gute Kohäsion", und wenn sie schlecht sind, sagen wir "eng gekoppelt". Das Entfernen von gut/eng ist ziemlich verwirrend - aber TLDR: je unterschiedlicher etwas ist, desto weiter sollte es auseinander liegen. Offenbar funktioniert das aber nicht so gut für Teams - das ist das Gegenteil von Vielfalt.