备忘录最常见在游戏中的进度保存,在打boss之前先保存当前进度,当在打斗中挂掉了,则从之前的进度中恢复,从而达到无限打boss,而打不死boss的死循环中,- -!
备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象外进行存储,并能够恢复到原先保存状态。
所以,抽出来三个对象:originator,该对象有保存当前进度和恢复当前进度,Memento,该对象记录当前进度的所有信息,caretaker,在外部保存记录的对象。
originator:
State state;
Memento* createMemento();
void setMemento(Memento * memento);
Memento:
State state;
Caretaker:
Memento *memento;
void setMemento(Memento* memento);
Memento* getMemento();