備忘錄最常見在遊戲中的進度保存,在打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();