Zpo-10-wyk-Slajd26: 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: struktura==
==Przykład==


[[Image:zpo-10-wyk-Slajd26.PNG|Memento: struktura]]
[[Image:zpo-10-wyk-Slajd26.PNG|Przykład]]




Obiektem, którego stan należy przechować, jest Originator. Posiada on metody służące do utworzenia migawki stanu (''createMemento'' ''())'' oraz jej odczytania w celu przywrócenia wcześniejszego stanu (''setMemento'' ''()).'' Obiekty-migawki stanu (Memento) przechowują stan obiektu Originator w postaci niezależnych instancji obiektu. Obiekty Memento posiadają metody ''getState'' ''()'' i ''setState'' ''(),'' służące do odczytania i zapisania stanu wewnątrz niego. Zarządzaniem kolejnymi migawkami stanu zajmuje się dedykowany obiekt Caretaker.
Przykład zaczyna się od stanu, w którym zakończyło się przekształcenie odwrotne: klasa KartaCzytelniczaUlgowa posiada referencję do KartyCzytelniczej i do niej deleguje niektóre swoje metody, np. ''naliczKare'' ''()'' i ''czytelnik'' ''().''  
 
Jednak istotą wzorca nie jest sama możliwość tworzenia migawek stanu, ale zapewnienie im właściwego poziomu bezpieczeństwa. Wzorzec Memento pozwala na dostęp do stanu zapisanego w migawce wyłącznie jego właścicielowi, czyli obiektowi Originator, natomiast inne obiekty (w tym Caretaker) mogą tylko odwoływać się do całych obiektów, a metody ''setState'' ''()'' i ''getState'' ''()'' są dla nich niewidoczne.




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

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

Przykład

Przykład


Przykład zaczyna się od stanu, w którym zakończyło się przekształcenie odwrotne: klasa KartaCzytelniczaUlgowa posiada referencję do KartyCzytelniczej i do niej deleguje niektóre swoje metody, np. naliczKare () i czytelnik ().


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