Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1793656
  • 博文数量: 438
  • 博客积分: 9799
  • 博客等级: 中将
  • 技术积分: 6092
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-25 17:25
文章分类

全部博文(438)

文章存档

2019年(1)

2013年(8)

2012年(429)

分类: C/C++

2012-03-25 20:16:01

备忘录用来存诸和恢复状态。游戏中的存档经常会用到。比如一个RPG游戏,你可以在挑战大boss前保存主角的状态,如果战死后可以恢复到战前的状态,而不必重头开始。


  1. Structure HeroMemento
  2. {
  3. };

  4. class Hero
  5. {
  6. public:
  7.     HeroMemento* getCurrentState();
  8.     void restoreState(HeroMemento*);
  9. };

  10. class Client
  11. {
  12.     void FightBoss()
  13.     {
  14.         HeroMemento* memento = this->hero->getCurrentState();
  15.         fight();
  16.         if (isDead())
  17.             this->hero->restoreState(memento);
  18.     }
  19. };

这种模式下,用户不需要知道备忘录里而的内容(即对象的内部细节),对象就可以恢复到原来的状态。
阅读(1263) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~