<设计模式19>备忘录模式
来源:互联网 发布:李雪儿的网络歌曲 编辑:程序博客网 时间:2024/05/17 22:04
备忘录(Memento)模式是是一种行为模式,常用来保存一种状态。当状态被修改的时候,可以通过备忘录模式来恢复状态,就好比打游戏一样,我们可以进行保存记录,保存后我们可以随时调取记录来恢复到以前的数据。
角色介绍:
Originator:源数据,里面是需要保存的数据值,在这里可以创建备忘录,备份和回复数据。
Memento:备忘录类,用于存储Originator的数据状态。
Caretaker:负责存放备忘录,但是不能对备忘录的内容进行修改,可以把备忘录传递给其他对象。
使用实例:
Originator:
/** * 源数据 * @author xiaoqi * */public class Originator {private int value;public int getValue() {return value;}public void setValue(int value) {this.value = value;}//创建备忘录public Memento createMemento(){return new Memento(value); }//恢复数据public void restore(Memento memento){this.value = memento.getValue();}}Memento:
/** * 备忘录 * @author xiaoqi * */public class Memento {private int value;public Memento(int value){this.value = value;}public int getValue(){return value;}}
Caretaker:
/** * 负责存储备忘录,但是不提供修改操作 * @author xiaoqi * */public class Caretaker {private Memento memento;public void save(Memento memento){this.memento = memento;}public Memento getMemento(){return memento;}}使用测试:
public class MementoTest {public static void main(String[] args) {Originator originator = new Originator();//设置数据int o = 11;System.out.println("备份的值:"+o);<span style="color:#ff0000;">originator.setValue(o);</span>Caretaker caretaker = new Caretaker();<span style="color:#ff0000;">caretaker.save(originator.createMemento());//创建caretaker对象保存备忘录</span>//修改数据originator.setValue(22222);System.out.println("修改的值:"+22222);//恢复数据<span style="color:#ff0000;">originator.restore(caretaker.getMemento());</span>int i = originator.getValue();System.out.println("恢复后的值:"+i);}}
结果:
备份的值:11
修改的值:22222
恢复后的值:11
0 0
- 设计模式(19)---->备忘录模式
- <设计模式19>备忘录模式
- 设计模式19-备忘录模式
- 设计模式-----备忘录模式
- 设计模式 备忘录模式
- 【设计模式】备忘录模式
- 设计模式 - 备忘录模式
- 设计模式:备忘录模式
- 设计模式 - 备忘录模式
- 设计模式 - 备忘录模式
- 设计模式 - 备忘录模式
- 设计模式:备忘录模式
- 【设计模式】备忘录模式
- 设计模式-备忘录模式
- 设计模式--备忘录模式
- 设计模式--备忘录模式
- 设计模式--备忘录模式
- 设计模式-备忘录模式
- hadoop2 作业执行过程之作业提交
- poj3009Curling 2.0
- HDU 4003 Find Metal Mineral (树形dp)
- 固定位数随机数
- 入职三个月有感
- <设计模式19>备忘录模式
- JS获取本周周一 周日日期、本季度、本月、上月的开端日期、停止日期
- Makefile规则
- 管道和FIFO
- 前端技术书籍
- hadoop高级应用-搜索提示
- 微信小程序入门级项目---天气查询小程序
- javascript学习笔记--javascript html dom
- 简单的文本协议、二进制协议