备忘录(memento) in Java
来源:互联网 发布:java web编程宝典 pdf 编辑:程序博客网 时间:2024/06/07 09:47
定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。
备忘录模式有以下三个角色:
- Originator发起人角色
记录当前时刻的内部状态,负责定义哪些属于备份范围的状态,负责创建和恢复备忘录数据。 - Memento备忘录角色
负责存储Originator发起人对象的内部状态,在需要的时候提供发起人需要的内部状态。 - Caretaker备忘录管理员角色
对备忘录进行管理、保存和提供备忘录。
发起人角色:
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 restoreMemento(Memento _memento){ this.setState(_memento.getState()); }}
备忘录角色:
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; }}
备忘录管理员角色:
public class Caretaker{ //备忘录对象 private Memento memento; public Memento getMemento(){ return memento; } public void setMemento(Memento memento){ this.memento = memento; }}
现在看看是如何使用的:
public class Client{ public static void main(String[] args){ Originator originator = new Originator(); Caretaker caretaker = new Caretaker(); caretaker.setMemento(originator.createMemento()); originator.restoreMemento(caretaker.getMemento); }}
0 0
- 备忘录(memento) in Java
- 备忘录模式(memento) Java
- java设计模式-备忘录模式(Memento)
- Java设计模式----备忘录模式(Memento)
- Java备忘录模式(Memento模式)
- 备忘录模式(Memento)-----基于JAVA语言
- java Memento(备忘录模式)
- Java备忘录模式(Memento)
- 备忘录(Memento)模式
- Memento(备忘录模式)
- 备忘录模式(Memento)
- 备忘录模式(Memento)
- 备忘录(memento)模式
- 备忘录模式(Memento)
- Memento(备忘录模式)
- 备忘录(Memento)
- 备忘录模式(Memento)
- 备忘录模式(Memento)
- 07数据挖掘原理-数据挖掘
- Linux内核驱动学习
- C++ primer 习题笔记第10~12章
- iOS开发的兼容和适配问题
- 时间表示
- 备忘录(memento) in Java
- oracle-over函数
- ubuntu下apt-get安装和彻底卸载mysql (http://blog.163.com/anonymous_ch/blog/static/206824190201391141636949/)
- 使用Linq时,根据特定的字符串名称,找到对应字段并获取值
- 解释器(interpreter) in Java
- 【poj 2049】finding nemo【待 SPFA&Bellman-Ford】
- map的insert操作范例(用value_type)
- oracle-回滚段
- malloc()、free()函数详解