|Type :||Be (Behavioral)|
|Intent :||Without violating encapsulation, capture and externalize an object's internal state so that the object can be restored to this state later.|
|Applicability :||Use the Memento pattern when :
- a snapshot of (some portion of) an object's state must be saved so that it can be restored to that state later, and
- a direct interface to obtaining the state would expose implementation details and break the object's encapsulation.