Zpo-1-wyk-Slajd35: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Bwalter (dyskusja | edycje)
Nie podano opisu zmian
 
Bwalter (dyskusja | edycje)
Nie podano opisu zmian
 
Linia 4: Linia 4:




Drugim kryterium jakości projektu obiektowego jest stopień powiązania klas. Powiązanie pomiędzy dwiema niespokrewnionymi klasami jest skierowaną relacją, która odzwierciedla stopień i rodzaj zależności pomiędzy nimi. Klasa A jest powiązana z klasą B, jeżeli musi posiadać o niej jakąś wiedze: posiadać składową tego typu, implementować typ A, być podklasą A, definiować metodę, która zawiera taką klasę w swojej sygnaturze (jako parametr, wartość zwracana lub deklarowany wyjątek).
Drugim kryterium jakości projektu obiektowego jest stopień powiązania klas. Powiązanie pomiędzy dwiema niespokrewnionymi klasami jest skierowaną relacją, która odzwierciedla stopień i rodzaj zależności pomiędzy nimi. Klasa A jest powiązana z klasą B, jeżeli musi posiadać o niej jakąś wiedzę: posiadać składową tego typu, implementować typ B, być podklasą B, definiować metodę, która zawiera taką klasę w swojej sygnaturze (jako parametr, wartość zwracana lub deklarowany wyjątek).


Podobnie jak w przypadku spójności, powiązania wyraża się w kategoriach powiązań luźnych (o niskim stopniu) i mocnych (o dużej liczbie zależności).
Podobnie jak w przypadku spójności, powiązania wyraża się w kategoriach powiązań luźnych (o niskim stopniu) i mocnych (o dużej liczbie zależności).

Aktualna wersja na dzień 10:45, 17 paź 2006

Powiązania między obiektami

Powiązania między obiektami


Drugim kryterium jakości projektu obiektowego jest stopień powiązania klas. Powiązanie pomiędzy dwiema niespokrewnionymi klasami jest skierowaną relacją, która odzwierciedla stopień i rodzaj zależności pomiędzy nimi. Klasa A jest powiązana z klasą B, jeżeli musi posiadać o niej jakąś wiedzę: posiadać składową tego typu, implementować typ B, być podklasą B, definiować metodę, która zawiera taką klasę w swojej sygnaturze (jako parametr, wartość zwracana lub deklarowany wyjątek).

Podobnie jak w przypadku spójności, powiązania wyraża się w kategoriach powiązań luźnych (o niskim stopniu) i mocnych (o dużej liczbie zależności).

Słabe powiązanie oznacza, że analizowana klasa w niewielkim stopniu zależy od zmian w innych klasach. Mają na to wpływ dwa czynniki: liczba powiązań oraz ich rodzaj. Siła powiązania jest odwrotnie proporcjonalna do abstrakcyjności klasy zależnej: zależność od stabilnego interfejsu jest mniejsza od zależności od szczegółowej klasy implementacyjnej.

Wysoki stopień powiązań ma negatywny wpływ na wiele zewnętrznych czynników jakości programu, m.in. jego pielęgnowalność, elastyczność i stopień abstrakcji. Dlatego projekt obiektowy powinien minimalizować liczbę powiązań między klasami i interfejsami, i jednocześnie preferować zależności od stabilnych interfejsów.

Warto zwrócić uwagę na zależność pomiędzy spójnością a powiązaniami: w większości wypadków wysoka spójność oznacza także niski stopień powiązań, a brak spójności stopień ten zwiększa.


<< Poprzedni slajd | Spis treści | Następny slajd >>