设计模式之备忘录模式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式之备忘录模式相关的知识,希望对你有一定的参考价值。
1、备忘录模式简介:
a、场景:
- 录入大批人员资料。正在录入当前人资料时,发现一个人录入错了,此时需要恢复上一个人资料时在进行修改。
- Word 文档编辑时,忽然电脑死机或者是断电,再打开时,可以看到 word 提示你恢复到以前的文档。
- 管理系统中,公文撤回功能。公文发送回去后,想撤回来。
b、核心:
- 就是保存某个对象内部状态的拷贝,这样以后就可以将该对象恢复到原先的状态中。
c、结构:
- 源发器类: Originator
* 负责创建一个备忘录 Memento,用以记录当前时刻它的内部状态,并可使用备忘录恢复内部状态。
- 备忘录类: Memento
* 负责存储 Originator 对象的内部状态,并可防止 Originator 以外的其他对象,访问备忘录 Memento。
- 负责人类: CareTake
* 负责保存好备忘录 Memento。
2、简单的代码演示:
a、Emp 类为源发器类(在类中提供了 memento() 方法,进行备忘操作,即返回一个新创建的备忘录类对象。提供了 recovery() 方法,提供恢复上一步的操作。)EmpMemento 类为备忘录类,即类中提供和 Emp 类中一样的成员变量。EmpCareTaker 类为负责人类,提供保存备忘录的 set、get 方法。
c、看看 Client17 测试类输出的结果,以及示例代码中的类图关系。
注:EmpCareTaker 可以用 List 或者 Stack 进行保存,这样就可以进行一系列的撤销操作了。
3、开发中常见的应用场景:
- 棋类游戏中的悔棋操作
- 普通软件中的撤销操作
- 数据库软件中的,事务管理中的回滚操作
本文出自 “12392717” 博客,请务必保留此出处http://12402717.blog.51cto.com/12392717/1930111
以上是关于设计模式之备忘录模式的主要内容,如果未能解决你的问题,请参考以下文章