Zpo-10-wyk-Slajd15: 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:
==Chain of Responsibility: przykład 2==
==Przykład(2)==


[[Image:zpo-10-wyk-Slajd15.PNG|Chain of Responsibility: przykład 2]]
[[Image:zpo-10-wyk-Slajd15.PNG|Przykład(2)]]




Z uwagi na wymienione wcześniej niedogodności, przede wszystkim możliwość przerwania łańcucha sterowania, możliwa jest także inna struktura przetwarzania, która nie posiada już topologii łańcucha. W tym rozwiązaniu pojawia się nowa rola: zarządcy, który posiada referencje do wszystkich filtrów. Zarządca (w tym przypadku jest nim także obiekt Inbox) wywołuje po kolei wszystkie filtry, które obsługują daną wiadomość lub nie. Jednak dzięki temu, że filtry nie przekazują sobie bezpośrednio sterowania, nie ma możliwości przerwania łańcucha, a ponadto informacja o nieobsłużeniu żądania może być w łatwy sposób przedstawiona klientowi przez zarządcę.  
Ostatnią operacją jest wprowadzenie zmian do metody ''przypiszKsiazke'' ''()'' w klasie Tom, która w tym przypadku pełni rolę kontrolującą. Pierwszą instrukcją tej metody jest usunięcie referencji do bieżącego obiektu Tom ze zbioru referencji powrotnych w klasie Książka. Wykonanie tej operacji na początku przypisania książki zapewnia, że usunięte zostają ewentualne istniejące wcześniej referencje do Tomu. Następnie zmieniana jest referencja do Książki przechowywana w klasie Tom, a ostatnim krokiem jest dodanie referencji do Tomu w klasie Książka.
 
Teraz dodanie nowej Książki do klasy Tom powoduje jednoczesne dodanie tego Tomu do zbioru referencji przechowywanych w klasie Książka.




[[zpo-10-wyk-Slajd14 | << Poprzedni slajd]] | [[zpo-10-wyk-toc|Spis treści ]] | [[zpo-10-wyk-Slajd16 | Następny slajd >>]]
[[zpo-10-wyk-Slajd14 | << Poprzedni slajd]] | [[zpo-10-wyk-toc|Spis treści ]] | [[zpo-10-wyk-Slajd16 | Następny slajd >>]]

Aktualna wersja na dzień 17:51, 4 lis 2006

Przykład(2)

Przykład(2)


Ostatnią operacją jest wprowadzenie zmian do metody przypiszKsiazke () w klasie Tom, która w tym przypadku pełni rolę kontrolującą. Pierwszą instrukcją tej metody jest usunięcie referencji do bieżącego obiektu Tom ze zbioru referencji powrotnych w klasie Książka. Wykonanie tej operacji na początku przypisania książki zapewnia, że usunięte zostają ewentualne istniejące wcześniej referencje do Tomu. Następnie zmieniana jest referencja do Książki przechowywana w klasie Tom, a ostatnim krokiem jest dodanie referencji do Tomu w klasie Książka.

Teraz dodanie nowej Książki do klasy Tom powoduje jednoczesne dodanie tego Tomu do zbioru referencji przechowywanych w klasie Książka.


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