备忘录用来存诸和恢复状态。游戏中的存档经常会用到。比如一个RPG游戏,你可以在挑战大boss前保存主角的状态,如果战死后可以恢复到战前的状态,而不必重头开始。
- Structure HeroMemento
- {
- };
- class Hero
- {
- public:
- HeroMemento* getCurrentState();
- void restoreState(HeroMemento*);
- };
- class Client
- {
- void FightBoss()
- {
- HeroMemento* memento = this->hero->getCurrentState();
- fight();
- if (isDead())
- this->hero->restoreState(memento);
- }
- };
这种模式下,用户不需要知道备忘录里而的内容(即对象的内部细节),对象就可以恢复到原来的状态。
阅读(1263) | 评论(0) | 转发(0) |