行为型模式-----备忘录模式(Memento)
来源:互联网 发布:tensorflow入门 编辑:程序博客网 时间:2024/05/19 20:59
1、备忘录模式 (类似于数据的备份-恢复)
目的是:保存一个独享的某个状态,以便在适当的时候恢复对象。
如:假设有原始类A,A中有很多属性,A可以决定需要备份的属性,备忘录类B是用来存储A的一些内部状态。
而类C就是一个用来存储备忘录的,且只能对其存储,而不能进行修改操作。
实例一
// 原始类public class Original {private String name;private String pass;// 创建备忘录public Memento createMemento() {final Memento m = new Memento();m.setPass(this.getPass());return m;}// 恢复备忘录中记载的数据public void restoreMemento(final Memento memento) {this.pass = memento.getPass();}public String getName() {return this.name;}public void setName(final String name) {this.name = name;}public String getPass() {return this.pass;}public void setPass(final String pass) {this.pass = pass;}}// 备忘录类public class Memento {private String pass;public String getPass() {return this.pass;}public void setPass(final String pass) {this.pass = pass;}}public class Storage {private Memento memento;public Memento getMemento() {return this.memento;}public void setMemento(final Memento memento) {this.memento = memento;}}
模拟调用:
public static void main(final String[] args) {// 初始状态final Original original = new Original();original.setName("zhangsan");original.setPass("12345");// 创建备忘录final Storage storage = new Storage();storage.setMemento(original.createMemento());// 修改密码前System.out.println(" ~~~ before ~~~ :" + original.getPass());original.setPass("qwert");// 修改密码后System.out.println(" ~~~~ after ~~~~ : " + original.getPass());// 恢复原有密码original.restoreMemento(storage.getMemento());System.out.println(" ~~~ 恢复密码后 ~~~~ : " + original.getPass());}
- 行为型模式-----备忘录模式(Memento)
- 十八、备忘录模式Memento(行为型)
- 备忘录模式Memento(对象行为型)
- 行为型模式-备忘录memento
- 行为模式:Memento(备忘录)
- [设计模式-行为型]备忘录模式(Memento)
- 行为型模式-Memento ( 备忘录模式 )
- Memento 备忘录模式 ----对象行为型模式
- 设计模式(4)-行为型-备忘录模式(Memento)
- 行为型模式之备忘录模式(Memento)
- 设计模式--备忘录模式Memento(行为型)
- 七、备忘录模式Memento(行为型模式)
- 设计模式-行为型- 备忘录模式(Memento)
- 行为型模式之备忘录模式(Memento)
- 行为型模式之备忘录MEMENTO
- 备忘录模式(Memento)----行为笔记
- 备忘录模式(Memento)----行为笔记
- 3.6 Memento(备忘录) -- 对象行为型模式
- 从数组中取出n个元素的所有组合(递归实现)
- redhat5.4安装中文输入法
- 将list或者list<?>转换为JSONObject
- ORA-00742 ORA-00312特殊恢复
- dllmain中不能创建线程
- 行为型模式-----备忘录模式(Memento)
- leetcode-13:Roman to Integer
- 关于IOCP的探讨
- delphi中Tedit输入金额数字
- 动态绑定Gridview带模板列
- java 生成EXCEL 解决中文乱码问题(只供自己后面寻找方便)【转载悠悠的BOLG】
- 谈谈IOCP发送数据时的一些误区及技巧
- 关于asp网页制作的整理
- stdio.h及cstdio的区别