Kategorie szkoleń | Egzaminy | Kontakt
  • 1
  • 1
  • 66
Zaloguj się aby zadać pytanie
Pokrewne

Odpowiedź (1)

  • 3

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
  • to jest to do czego należy dążyć
  • kółka w tym samym kolorze reprezentują kod powiązany ze sobą logicznie i realizujący wspólny cel

Wariant 2:

system z wysoką zwartością i z wysokim sprzężeniem

  • system został zredukowany do jednego komponentu potrafiącego wszystko
  • duża ilość zależności, brak określonej odpowiedizalności

Wariant 3:

system o niskiej zwartości i wysokim sprzężeniu

  • źle wyznaczone granice komponentów
  • komponenty nie reprezentują modelu domenowego

Wariant 4:

system o niskiej zwartości i niskim sprzężeniu

  • dążenie do wprowadzenia nazbyt niskiego sprzężenia ("na siłę") prowadzi do zagubienia celów jakim służą poszczególne komponenty
  • trudno określić znaczenie istnienia poszczególnych komponentów

 

W powyższym materiale wykorzystano artykuł: "Cohesion and Coupling: the difference" by Vladimir Khorikov

  • Odpowiedział
  • @ | 05.12.2015
  • TRENER MODERATOR ALTKOM AKADEMII