Zpo-1-wyk-Slajd35

Z Studia Informatyczne
Wersja z dnia 10:45, 17 paź 2006 autorstwa Bwalter (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania

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 >>