Without violating encapsulation, capture and externalize an object's internal state so that the object can be restored to this state later.
The Originator sets the Memento's private state in its method for creating a Memento. This low-level violation of encapsulation is used to avoid having to declare public methods for the Memento that would violate encapsulation at a higher level.