Memento (design pattern)

E679877

Memento (design pattern) is a behavioral software design pattern that captures and externalizes an object's internal state so it can be restored later without violating encapsulation.

All labels observed (2)

Label Occurrences
Memento (design pattern) canonical 6
Memento pattern 1

How this entity was disambiguated

Statements (47)

Predicate Object
instanceOf behavioral design pattern
software design pattern
alsoKnownAs Token
appliesTo objects with complex internal state
systems requiring reversible operations
benefit decouples state storage from state management logic
simplifies Originator’s interface for saving and restoring state
category Gang of Four behavioral pattern
consequence can increase memory usage due to stored states
can increase number of objects created
definedIn Design Patterns: Elements of Reusable Object-Oriented Software
describedBy Gang of Four
encapsulationLevel black-box memento
wide-interface memento
ensures Originator’s internal state is not exposed to other objects
field object-oriented programming
software engineering
hasIntent capture and externalize an object’s internal state so it can be restored later
preserve encapsulation while saving and restoring state
hasParticipant Caretaker
Memento object
Originator
introducedIn 1994
involvesRole Caretaker
Memento
Originator
languageAgnostic true
preserves encapsulation
relatedTo Command (design pattern)
Prototype (design pattern)
linked to: Prototype

State (design pattern)
linked to: State
responsibility create a memento containing a snapshot of its current internal state
keep track of mementos
pass mementos back to the Originator for state restoration
provide state back to the Originator when requested
request mementos from the Originator
restore its internal state from a memento
store the internal state of the Originator
roleIn Memento (design pattern)
Memento (design pattern)
Memento (design pattern)
supports rollback of state
state history management
undo operations
useCase implement checkpoints in games
implement multi-level undo in text editors
implement transactional rollback in applications

How these facts were elicited

Referenced by (7)

Full triples — surface form annotated when it differs from this entity's canonical label.

Originator roleInPattern Memento (design pattern)
subject linked to: Memento
Memento roleInPattern Memento (design pattern)
Caretaker roleInPattern Memento (design pattern)
subject linked to: Memento
Originator (Memento pattern) roleIn Memento (design pattern)
subject linked to: Memento (design pattern)
Memento object roleIn Memento (design pattern)
subject linked to: Memento (design pattern)
Caretaker (Memento pattern) roleIn Memento (design pattern)
subject linked to: Memento (design pattern)
Gang of Four design pattern hasExample Memento pattern
linked to: Memento (design pattern)