Die beste Erklärung von Kohäsion stammt aus Uncle Bobs Clean Code:
Klassen sollten nur wenige Instanzvariablen haben. Jede Methode einer Klasse sollte eine oder mehrere dieser Variablen manipulieren. Im Allgemeinen ist eine Methode umso kohärenter für ihre Klasse, je mehr Variablen sie manipuliert. Eine Klasse, in der jede Variable von jeder Methode verwendet wird, ist maximal kohäsiv.
Im Allgemeinen ist es weder ratsam noch möglich, solche maximal kohäsiven Klassen zu erstellen; andererseits möchten wir, dass die Kohäsion hoch ist. Wenn die Kohäsion hoch ist, bedeutet dies, dass die Methoden und Variablen der Klasse voneinander abhängig sind und als logische Einheit zusammenhängen.
Die Strategie, Funktionen klein zu halten und die Parameterlisten kurz zu halten, führt manchmal dazu, dass eine Vielzahl von Instanzvariablen entsteht, die von einem Teil der Methoden verwendet werden. Wenn dies geschieht, deutet dies fast immer darauf hin, dass mindestens eine andere Klasse versucht, aus der größeren Klasse herauszukommen. Sie sollten versuchen, die Variablen und Methoden in zwei oder mehr Klassen aufzuteilen, so dass die neuen Klassen kohärenter sind.
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.