Low Coupling w zasadach GRASP

Ograniczenie zakresu zmian.


Problem:

Jak ograniczyć zakres zmian w systemie w momencie zmiany fragmentu systemu?

Rozwiązanie:

Deleguj odpowiedzialności tak, aby zachować jak najmniejsza liczbę powiązań pomiędzy klasami.
Komentarz:
W przypadku wielu powiązań zmiana w jednej klasie, powoduje wiele zmian w innych klasach. Klasy powinny być od siebie jak najbardziej niezależne. Klasa która ma za dużo powiązań prawdopodobnie jest „przeciążona” obowiązkami, co implikuje złamanie kolejnej zasady czyli High Cohesion.

Klasy A i B są ze sobą powiązane, gdy:

  • obiekt A ma atrybut typu B lub typu C związanego z B,
  • obiekt A wywołuje metody obiektu typu B,
  • obiekt A ma metodę związaną z typem B (zmienna lokalna, typ wartości/parametru),
  • obiekt A dziedziczy po B.
Komentarze facebook (polub nasz profil na FB aby je zobaczyć):