十一个行为型模式6:备忘录模式-Memento Pattern【学习难度:★★☆☆☆,使用频率:★★☆☆☆
来源:互联网 发布:上海师范大学网络课程 编辑:程序博客网 时间:2024/06/06 17:29
引入动机:在应用软件的开发过程中,很多时候我们都需要记录一个对象的内部状态。
在具体实现过程中,为了允许用户取消不确定的操作或从错误中恢复过来,需要实现备份点和撤销机制,而要实现这些机制,必须事先将状态信息保存在某处,这样才能将对象恢复到它们原先的状态。
备忘录模式是一种给我们的软件提供后悔药的机制,通过它可以使系统恢复到某一特定的历史状态。
备忘录模式(Memento Pattern):在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。它是一种对象行为型模式,其别名为Token。
备忘录模式包含如下角色:
Originator 原发器:
package dp.memento;public class Originator { private String state; public Originator(){} // 创建一个备忘录对象 public Memento createMemento(){ return new Memento(this); } // 根据备忘录对象恢复原发器状态 public void restoreMemento(Memento m){ state = m.state; } public void setState(String state) { this.state=state; } public String getState() { return this.state; }}
Memento 备忘录:
package dp.memento;class Memento { private String state; public Memento(Originator o){ state = o.state; } public void setState(String state) { this.state=state; } public String getState() { return this.state; }}
Caretaker 负责人:
package dp.memento;public class Caretaker{ private Memento memento; public Memento getMemento() { return memento; } public void setMemento(Memento memento) { this.memento=memento; }}
阅读全文
0 0
- 十一个行为型模式6:备忘录模式-Memento Pattern【学习难度:★★☆☆☆,使用频率:★★☆☆☆
- 十一个行为型模式1:职责链模式-Chain of Responsibility Pattern【学习难度:★★★☆☆,使用频率:★★☆☆☆】
- 十一个行为型模式5:中介者模式-Mediator Pattern【学习难度:★★★☆☆,使用频率:★★☆☆☆】
- 十一个行为型模式9:策略模式-Strategy Pattern【学习难度:★☆☆☆☆,使用频率:★★★★☆】
- 十一个行为型模式10:模板方法模式-Template Method Pattern【学习难度:★★☆☆☆,使用频率:★★★☆☆】
- 十一个行为型模式11:访问者模式-Visitor Pattern【学习难度:★★★★☆,使用频率:★☆☆☆☆】
- 十一个行为型模式3:解释器模式-Interpreter Pattern【学习难度:★★★★★,使用频率:★☆☆☆☆】
- 十一个行为型模式8:状态模式-State Pattern【学习难度:★★★☆☆,使用频率:★★★☆☆】
- 十一个行为型模式2:命令模式-Command Pattern【学习难度:★★★☆☆,使用频率:★★★★☆】
- 十一个行为型模式4:迭代器模式-Iterator Pattern【学习难度:★★★☆☆,使用频率:★★★★★】
- 十一个行为型模式7:观察者模式-Observer Pattern【学习难度:★★★☆☆,使用频率:★★★★★】
- 七个结构型模式6: 享元模式-Flyweight Pattern【学习难度:★★★★☆,使用频率:★☆☆☆☆】
- 六个创建型模式6:建造者模式-Builder Pattern【学习难度:★★★★☆,使用频率:★★☆☆☆】
- 六个创建型模式1:简单工厂模式-Simple Factory Pattern【学习难度:★★☆☆☆,使用频率:★★★☆☆】
- 六个创建型模式4: 单例模式-Singleton Pattern【学习难度:★☆☆☆☆,使用频率:★★★★☆】
- 六个创建型模式5: 原型模式-Prototype Pattern【学习难度:★★★☆☆,使用频率:★★★☆☆】
- 七个结构型模式1: 适配器模式-Adapter Pattern【学习难度:★★☆☆☆,使用频率:★★★★☆】
- 七个结构型模式2:桥接模式-Bridge Pattern【学习难度:★★★☆☆,使用频率:★★★☆☆】
- 图解http整理(了解web及网络基础一)
- 模糊查询全部删除添加用户
- spring读写分离(mysql主从复制<3>)
- 1008. 数组元素循环右移问题 (20)
- matlab处理矩阵的相关知识点
- 十一个行为型模式6:备忘录模式-Memento Pattern【学习难度:★★☆☆☆,使用频率:★★☆☆☆
- Redis的embstr与raw编码方式不再以39字节为界了!
- Django&templates
- 汇编语言
- 头条页面
- Socket请求分析
- Binding应用(一)
- c++构建正态分布的随机数
- C语言排序算法汇总