Das Memento - Pattern ermöglicht es den internen Zustand eines Objektes zu erfassen,
ohne seine Kapselung zu verletzen.
Dies ermöglicht das spätere Zurücksetzen des Objektes in diesen Zustand. Somit ist das Memento geeignet um zum Beispiel Undo Mechanismen zu implementieren.
Ein wichtiger Aspekt des Mementos ist der Schutz der Kapselung des Urhebers, somit gibt es keine Schnittstelle dies es ermöglicht von außen auf den Zustand
des Urhebers zuzugreifen. Der Aufbewharer hat jedoch die Möglichkeit vom Urheber ein Memento anzufordern, dieser speichert daraufhin seinen internen Zustand
in einem Memento und gibt dies an den Aufbewahrer zurück. Weiterhin hat der Aufbewahrer die Möglichkeit, mit dem Memento, den Urheber in einen früheren Zustand zurückzusetzen.
Um den Zustand des Urhebers zu schützen ist auch der interne Zustand des Mementos für den Aufbewahrer nicht zugreifbar.
Der Einsatz eines Mementos bietet sich immer dann an, wenn eine Momentaufnahme des Zustandes eines Objektes zwischengespeichert werden soll, so dass es zu einem
späteren Zeitpunkt zurück gesetzt werden kann und wenn eine direkte Schnittstelle zum Ermitteln des internen Zustandes die Implementierungsdetails offenlegen und die Kapselung aufbrechen würde.
Das Memento-Pattern folgende Struktur:
|
Abb. 1: Das Memento Design Pattern
|
Teilnehmer
- Memento
- speichert internen Zustand des Urheberobjektes
- schützt sich vor Zugriff durch andere Objekte, außer dem Urheber.
- Urheber
- erzeugt ein Memento
- verwendet das Memento, um seinen internen Zustand wiederherzustellen.
- Aufbewahrer
- ist für die Aufbewahrung des Mementos zuständig.
- arbeitet niemals mit dem Inhalt des Mementos oder untersucht es.
|