Memento: Capture and restore an object’s internal state. Without
violating encapsulation, capture and externalize an objectâĂŹs internal
state so that the object can be restored to this state later.
Don’t damage encapsulation of Originator, catch a snapshoot inside
state (memento), save it in the caretaker, Then call SetMemento inside
of originator to restore it.