Zpo-7-wyk-Slajd16: 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 1: Linia 1:
==Change Bidirectional Association with Uni==
==Mediator: uczestnicy==


[[Image:zpo-7-wyk-Slajd16.PNG|Change Bidirectional Association with Uni]]
[[Image:zpo-7-wyk-Slajd16.PNG|Mediator: uczestnicy]]




Przekształcenie to służy do osiągnięcia przeciwnego celu niż poprzednie: zmiany relacji dwukierunkowej na jednokierunkową. Zmiana taka jest wskazana, gdy dwie klasy są zbyt blisko ze sobą związane. Wówczas usunięcie jednego z kierunków asocjacji pozwala uniezależnić jeden z obiektów i zmniejszyć siłę zależności istniejącej między nim a drugim obiektem.
Mediator posiada metody służące do dołączania i odłączania obiektów Colleague. Ponadto jego zadaniem jest implementacja mechanizmu komunikacji, czyli podejmowanie decyzji który z obiektów Colleague powinien wykonać określone żądanie.


Aby przystąpić do realizacji tego przekształcenia, należy najpierw określić, który z kierunków asocjacji ma pozostać, oraz w jaki sposób można zastąpić usuwany kierunek relacji. Nie można bowiem całkowicie usunąć asocjacji bez wpływu na sposób komunikowania się obiektów, dlatego konieczne jest wprowadzenie rozwiązania zastępczego, które nie wymaga istnienia stałej asocjacji.
Obiekty Colleague nie są obciążone zadaniem komunikacji z pozostałymi obiektami. Ich wiedza jest ograniczona do znajomości Mediatora. Także dołączenie i odłączenie obiektu Colleague wymaga jedynie powiadomienia Mediatora, a nie wszystkich obiektów.


Kolejnym krokiem jest usunięcie odwołań do metody aktualizującej referencje powrotne po stronie obiektu kontrolowanego (w tym przypadku B) z metody w obiekcie kontrolującym (czyli A). Po wykonaniu tego kroku obiekt kontrolowany nie będzie posiadał aktualnych referencji do obiektów po stronie kontrolującej, a zatem jest to krok wprowadzający istotną zmianę mogącą mieć wpływ na zachowanie programu.
Struktura ta jest przybliżoną analogią do sieci komputerowych, w których komputery znajdujące się w różnych podsieciach komunikują się za pośrednictwem routera. Poszczególne Komputery nie muszą znać adresów wszystkich innych komputerów na świecie, a jedynie adres najbliższego routera.
 
Po usunięciu odwołania do metody po stronie obiektu B można usunąć zarówno pole reprezentujące referencje powrotne w tej klasie, jak i samą metodę. Ostatnim krokiem jest modyfikacja metod w klasie B, które wymagają referencji do klasy A: może ona np. zostać przekazana jako parametr lub uzyskana za pośrednictwem innego obiektu.




[[zpo-7-wyk-Slajd15 | << Poprzedni slajd]] | [[zpo-7-wyk-toc|Spis treści ]] | [[zpo-7-wyk-Slajd17 | Następny slajd >>]]
[[zpo-7-wyk-Slajd15 | << Poprzedni slajd]] | [[zpo-7-wyk-toc|Spis treści ]] | [[zpo-7-wyk-Slajd17 | Następny slajd >>]]

Aktualna wersja na dzień 19:16, 4 lis 2006

Mediator: uczestnicy

Mediator: uczestnicy


Mediator posiada metody służące do dołączania i odłączania obiektów Colleague. Ponadto jego zadaniem jest implementacja mechanizmu komunikacji, czyli podejmowanie decyzji który z obiektów Colleague powinien wykonać określone żądanie.

Obiekty Colleague nie są obciążone zadaniem komunikacji z pozostałymi obiektami. Ich wiedza jest ograniczona do znajomości Mediatora. Także dołączenie i odłączenie obiektu Colleague wymaga jedynie powiadomienia Mediatora, a nie wszystkich obiektów.

Struktura ta jest przybliżoną analogią do sieci komputerowych, w których komputery znajdujące się w różnych podsieciach komunikują się za pośrednictwem routera. Poszczególne Komputery nie muszą znać adresów wszystkich innych komputerów na świecie, a jedynie adres najbliższego routera.


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