70 likes | 103 Views
Learn about the Memento pattern, a design pattern that captures and restores an object's internal state. This pattern is helpful when you need to save a snapshot of an object's state for future restoration without exposing implementation details. Explore the participants involved in the Memento pattern - Originator, Memento, and Caretaker - and see an example with a Security Guard, Owner, and Safety Deposit scenario. Dive into the UML diagram and see how to implement the Memento pattern in your own code.
E N D
Memento Kendra Kachelein Maureen Thomas
Definition • The memento captures and externalizes an object’s internal state, so the object can be restored to that state later.
Applicability • Use the Memento pattern when: • A snapshot of an object’s state must be saved so that it can be restore to that state later, and • A direct interface to obtaining the state would expose implementation details and break the object’s encapsulation
Participants • There are 3 participants in the Memento pattern: • Originator: whose state has to be maintained • Memento: stores the state of the Originator object • Caretaker: has a handle to the Memento
Example 34-55-09 Caretaker Memento Originator
UML Diagram Caretaker Originator Memento -State -State +GetState() +SetState() +SetMemento(in Memento) +CreateMemento() Class Example: Security Guard Owner Safety Deposit -State -State +GetCombo() +GiveCombo() +DepositCombination(in Memento) +WriteCombination()
Source Code Implementation public class Owner { private int combination public safetyDeposit getCombo() { return new saftetyDeposit(this); } public void giveCombo(safetyDeposit sd) { combination = sd.combination; }