Zpo-10-wyk-Slajd28: 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:
==Memento: konsekwencje==
==Przykład(2)==


[[Image:zpo-10-wyk-Slajd28.PNG|Memento: konsekwencje]]
[[Image:zpo-10-wyk-Slajd28.PNG|Przykład(2)]]




W ten sposób obiekt Memento posiada dwa logiczne interfejsy: szeroki, umożliwiający pełen dostęp do ich zawartości, przeznaczony wyłącznie dla obiektu Originator, oraz wąski, w praktyce blokujący dostęp do większości metod, przeznaczony dla pozostałych obiektów, w tym obiektu Caretaker.
Po zakończeniu przenoszenia odwołań można usunąć elementy związane z delegacją: pole z referencją do KartyCzytelniczej i konstruktor inicjujący to pole.  


Takie rozwiązanie przede wszystkim zachowuje hermetyczność obiektu Memento, ale również upraszcza obiekt Originator i zmniejsza jego zakres odpowiedzialności. Nie musi już on zajmować się w żaden sposób przechowywaniem migawek stanu, usuwaniem ich etc; Funkcje te zostały wydzielone do obiektów Memento i Caretaker.
W efekcie klasa KartaCzytelniczaUlgowa stała się podklasą KartyCzytelniczej.
 
Pełna hermetyzacja obiektów Memento w stosunku do klasy Caretaker ma także pewne wady: stan przechowywany w tych obiektach może mieć znaczny rozmiar, i zarządzanie nim może wymagać optymalizacji, stosowania heurystycznych algorytmów usuwania niektórych migawek etc. Niestety, ponieważ obiekt Caretaker nie może stwierdzić rozmiaru migawki, nie może również podjąć skutecznego działania w tym kierunku.




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

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

Przykład(2)

Przykład(2)


Po zakończeniu przenoszenia odwołań można usunąć elementy związane z delegacją: pole z referencją do KartyCzytelniczej i konstruktor inicjujący to pole.

W efekcie klasa KartaCzytelniczaUlgowa stała się podklasą KartyCzytelniczej.


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