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)