设计模式16——Memento设计模式
2019独角兽企业重金招聘Python工程师标准>>>
Memento备忘录设计模式是一个保存另外一个对象内部状态拷贝的对象,这样以后就可以将该对象恢复到以前保存的状态。Memento备忘录设计模式的结构如下:
Memento备忘录设计模式有以下3个重要角色:
Originator:需要保存内部状态的对象。
Caretaker:为Originator保存并恢复状态的对象。
Memento:存放Originator内部状态的对象,由Originator进行读写,并且Caretaker进行维护。
Memento备忘录设计模式例子代码如下:
// Memento
class Memento{private String state;public Memento(String state){this.state = state;}public String getState(){return state;}
}// Caretaker
class Caretaker{private Stack<Memento> mementos = new Stack<Memento>();public void addMemento(Memento m){mementos.push(m);}public Memento getMemento(){if(!mementos.empty()){return mementos.pop();}return null;}
}// Originator
public class Originator{private String state;public Originator(String state){this.state = state;}public void setState(){this.state = state;}public String getState(){return state; }public Memento createMemento(String state){return new Memento(state);}public static void main(String[] args){Originator originator = new Originator(“State1”);Caretaker caretaker = new Caretaker();caretaker.addMemento(originator. createMemento(originator.getState()));originator.setState(“State2”);String restore = caretaker. getMemento().getState();System.out.println(“Current originator state=” + originator.getState() + “,restore state=” + restore);}
}
程序运行结果:
Currentoriginator state= State2,restore state= State1
Memento备忘录设计模式常用于文字编辑软件/IDE集成开发环境中的撤销和恢复操作。
转载于:https://my.oschina.net/hongdengyan/blog/195549
设计模式16——Memento设计模式相关推荐
- memento模式_Java中的Memento设计模式-示例教程
memento模式 记忆模式是行为设计模式之一 . 当我们要保存对象的状态以便以后可以恢复时,可以使用Memento设计模式. 使用Memento模式以这种方式实现该目的,即无法在对象外部访问对象的已 ...
- Java中的Memento设计模式-示例教程
记忆模式是行为设计模式之一 . 当我们要保存对象的状态以便以后可以恢复时,可以使用Memento设计模式. 记忆模式用于以这种方式实现该目的,即在对象外部无法访问该对象的已保存状态数据,从而保护了已保 ...
- 行为设计模式 - Memento设计模式
行为设计模式 - Memento设计模式 Memento 设计模式是行为设计模式之一.当我们想要保存对象的状态以便稍后可以恢复时,使用Memento设计模式.Memento模式用于实现这一点,使得 ...
- memento模式_Java中的Memento设计模式
memento模式 Memento design pattern is one of the behavioral design pattern. Memento design pattern is ...
- java memento_memento模式_Java中的Memento设计模式-示例教程
memento模式 记忆模式是行为设计模式之一 . 当我们要保存对象的状态以便以后可以恢复时,可以使用Memento设计模式. 使用Memento模式以这种方式实现该目的,即无法在对象外部访问对象的已 ...
- [Head First设计模式]生活中学设计模式——迭代器模式
系列文章 [Head First设计模式]山西面馆中的设计模式--装饰者模式 [Head First设计模式]山西面馆中的设计模式--观察者模式 [Head First设计模式]山西面馆中的设计模式- ...
- 创建设计模式 - 抽象工厂设计模式
创建设计模式 - 抽象工厂设计模式 欢迎来到java示例中的Abstract Factory Design Pattern.摘要工厂设计模式是创造模式之一.抽象工厂模式几乎类似于工厂模式,除了它更像工 ...
- [Head First设计模式]生活中学设计模式——组合模式
系列文章 [Head First设计模式]山西面馆中的设计模式--装饰者模式 [Head First设计模式]山西面馆中的设计模式--观察者模式 [Head First设计模式]山西面馆中的设计模式- ...
- java 设计模式 示例_Java设计模式–示例教程
java 设计模式 示例 Design Patterns are very popular among software developers. A design pattern is a well- ...
最新文章
- k8s概念入门之control-manager-针对1.1.版本阅读
- JS Math的几个方法使用实例
- 【大牛疯狂教学】java程序员大专找不到工作
- vscode设置键盘快捷键
- 百度网盘自动备份php,Linux定时备份数据到百度云盘
- PHP 常用函数及其它功能
- mysql漏洞包_MySQL npm包中的本地文件泄露漏洞
- 剑指offer_02
- 百度地图离线sdk java_百度地图SDK java.lang.UnsatisfiedLinkError: Couldn't load BaiduMapSDK...
- 1900页Python系列PPT分享六:面向对象程序设计(86页)
- 网页视频之win7家庭版配置IIS
- MODIS植被覆盖度
- 2021-03-31【Caltech行人数据集的 .vbb 转 .xml 】(学习记录)
- 芒果文件服务器,芒果服务器
- Smart原则和PDCA循环
- html与css笔记(旧)
- 计算机名加符号,最新带符号的网名
- 热乎乎的宇宙头条校招前端面经
- 知乎热榜“人脸安全”,这些博主怎么看
- 默默前行的livego--基于go语言的rtmp直播服务器