设计模式之---备忘录模式
来源:互联网 发布:历城二中 知乎 编辑:程序博客网 时间:2024/05/16 16:06
定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将该对象
恢复到原先保存的状态。
很好理解,就像我们以前打通关游戏一样,打通某个关卡,就会备份一下,不然根本通不了关。。
package memento;//备忘录:负责存储发起人对象的内部状态,在需要的时候提供发起人需要的内部状态。public class Memento { private String state = ""; public Memento(String state){ this.state = state; } public String getState() { return state; } public void setState(String state) { this.state = state; } }
package memento;//发起人:记录当前时刻的内部状态,负责定义哪些属于备份范围的状态,负责创建和恢复备忘录数据。public class Originator {private String state;public String getState() { return state; } public void setState(String state) { this.state = state; } public Memento createMemento(){ return new Memento(this.state); //返回当前状态的封装对象 } public void recover(Memento memento){ this.setState(memento.getState()); } public void showState() { System.out.println("当前状态为:"+state); }}
package memento;//管理角色:对备忘录进行管理,保存和提供备忘录。public class Caretaker { private Memento memento; public Memento getMemento(){ return memento; } public void setMemento(Memento memento){ this.memento = memento; } }
package memento;public class Client {public static void main(String[] args) {// TODO Auto-generated method stubOriginator originator=new Originator();originator.setState("初始状态");originator.showState();Caretaker caretaker=new Caretaker();caretaker.setMemento(originator.createMemento());//备份状态originator.setState("另一个状态");originator.showState();originator.recover(caretaker.getMemento());originator.showState();}}
1 0
- 设计模式之备忘录
- 设计模式之备忘录
- 设计模式之备忘录
- 设计模式之备忘录模式
- 设计模式之备忘录模式
- 设计模式之备忘录模式
- 设计模式之备忘录模式
- 设计模式之备忘录模式
- 设计模式之备忘录模式
- 设计模式之备忘录模式
- 设计模式之备忘录模式
- 设计模式之备忘录模式
- 设计模式之备忘录模式
- 设计模式之备忘录模式
- 设计模式之备忘录模式
- 设计模式之备忘录模式
- 设计模式 之 备忘录模式
- 设计模式之备忘录模式
- DB2常用命令
- C++中的static关键字
- Android Studio 打包、生成jks密钥、签名Apk、多渠道打包
- assign vs weak, __block vs __weak
- 关于大小端问题和字节序问题的一些总结
- 设计模式之---备忘录模式
- LightOJ 1288(01高斯消元、矩阵的秩)
- 创建型模式之工厂方法模式
- faial: refusing to merge unrelated histories
- Gartner:当商业智能成熟度低时,如何加快分析采用率
- 【深度学习论文】Fast-RCNN
- 3. Longest Substring Without Repeating Characters
- 医疗行业专业术语知识
- jQuery常用正则表达式