Jaka jest zależność pomiędzy zwartością a sprzężeniem?
Jakimi przesłankami należy się kierować tworząc poprawny model obiektowy systemu?
Jaka jest zależność pomiędzy zwartością a sprzężeniem?
Jakimi przesłankami należy się kierować tworząc poprawny model obiektowy systemu?
Zwartość oznacza dążenie do grupowania kodu powiązanego ze sobą (pracującego nad osiągnięciem wspólnego celu). Umożliwia wytyczenie "granic" definiujących komponent.
Sprzężenie dotyczy separacji, na ile to jest uzasadnione, niepowiązanych ze sobą logicznie fragmentów kodu. Opisuje na ile dany komponent jest niezależny od innego.
Ogólnie mówiąc należy dążyć do jak największej zwartości i jak najmniejszego sprzężenia.
Jednakże oba te pojęcia są ze sobą powiązane. Nie można osiągnąć minimalnego sprzężenia nie burząc wysokiej zwartości. Tak jak wszędzie, również i w tym przypadku należy wykazać się umiarem. "Przegięcie" w którąś ze stron spowoduje stworzenie nieużytecznego kodu.
Spróbujemy przedstawić konsekwencje dla modelu z różnymi stopniami zwartości i sprzężenia. |
Wariant 1: system z wysoką zwartością i z niskim sprzężeniem
|
|
Wariant 2: system z wysoką zwartością i z wysokim sprzężeniem
|
|
Wariant 3: system o niskiej zwartości i wysokim sprzężeniu
|
|
Wariant 4: system o niskiej zwartości i niskim sprzężeniu
|
W powyższym materiale wykorzystano artykuł: "Cohesion and Coupling: the difference" by Vladimir Khorikov