Java备忘录模式
来源:互联网 发布:mac口红lady bug试色 编辑:程序博客网 时间:2024/05/19 07:08
备忘录模式(Memento Pattern)用来恢复一个对象的状态到以前的状态。 备忘录模式下属于行为模式的类别。
实现实例
在这个示例中,备忘录模式(Memento Pattern)使用三个操作者类。 Memento
类中包含要恢复的对象的状态。 创建者在Memento
对象中创建和存储状态,Caretaker
对象负责从Memento
中恢复对象状态。在这个示例中,创建了以下几个类:Memento
,Originator
和CareTaker
。
MementoPatternDemo
这是一个演示类,它将使用CareTaker
和Originator
对象来显示对象状态的恢复。
备忘录模式(Memento Pattern)示例的结构如下图所示 -
第1步
创建一个Memento
类,其代码如下-
Memento.java
public class Memento { private String state; public Memento(String state){ this.state = state; } public String getState(){ return state; } }
第2步
创建一个Originator
类,其代码如下-
Originator.java
public class Originator { private String state; public void setState(String state){ this.state = state; } public String getState(){ return state; } public Memento saveStateToMemento(){ return new Memento(state); } public void getStateFromMemento(Memento memento){ state = Memento.getState(); }}
第3步
创建一个CareTaker
类,其代码如下-
CareTaker.java
import java.util.ArrayList;import java.util.List;public class CareTaker { private List<Memento> mementoList = new ArrayList<Memento>(); public void add(Memento state){ mementoList.add(state); } public Memento get(int index){ return mementoList.get(index); }}
第4步
创建一个类-MementoPatternDemo
并使用CareTaker
和Originator
对象。
MementoPatternDemo.java
public class MementoPatternDemo { public static void main(String[] args) { Originator originator = new Originator(); CareTaker careTaker = new CareTaker(); originator.setState("State #1"); originator.setState("State #2"); careTaker.add(originator.saveStateToMemento()); originator.setState("State #3"); careTaker.add(originator.saveStateToMemento()); originator.setState("State #4"); System.out.println("Current State: " + originator.getState()); originator.getStateFromMemento(careTaker.get(0)); System.out.println("First saved State: " + originator.getState()); originator.getStateFromMemento(careTaker.get(1)); System.out.println("Second saved State: " + originator.getState()); }}
第5步
验证输出,执行上面的代码得到以下结果 -
Current State: State #4First saved State: State #2Second saved State: State #3
阅读全文
0 0
- Java备忘录模式
- 备忘录模式(Java)
- java备忘录模式
- java Memento(备忘录模式)
- java 备忘录模式
- java 备忘录模式
- java 备忘录模式
- Java备忘录模式(Memento)
- java备忘录模式
- java备忘录模式实例
- java备忘录模式
- java备忘录模式
- JAVA -备忘录设计模式
- Java 备忘录模式
- Java备忘录模式
- java之备忘录模式
- Java备忘录模式
- 备忘录模式(java实现)
- getCause()方法
- (二)大型互联网分布式企业微服务云架构
- 没有上司的舞会
- MFC文件过滤
- turtle简单画图-其中的函数与作用
- Java备忘录模式
- Mohican_9/25 寄存器
- 二维高斯分布随机数
- java commons库之一:lang(2)元组和变量
- iMindMap 9中文版 附安装教程
- [catsVSdogs]猫狗大战代码注释讲解_1
- 安装CentOS-Linux系统(为安装MySQL、Tomcat做准备)
- 公式化的特征工程
- 巨人网络2018秋招编程题