java设计模式19_备忘录模式
来源:互联网 发布:windows 7 下载 编辑:程序博客网 时间:2024/06/07 11:33
备忘录模式
备忘录模式(Memento Pattern)用来恢复一个对象的状态到以前的状态
实现
这个示例中,备忘录模式(Memento Pattern)使用三个操作者类。 Memento类中包含要恢复的对象的状态。 创建者在Memento对象中创建和存储状态,Caretaker对象负责从Memento中恢复对象状态。在这个示例中,创建了以下几个类:Memento,Originator和CareTaker,将使用CareTaker和Originator对象来显示对象状态的恢复。
代码
package com.test;import java.util.ArrayList;import java.util.List;//第1步,创建一个Memento类class Memento { private String state; public Memento(String state) { this.state = state; } public String getState() { return state; }}// 第2步, 创建一个Originator类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类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); }}public class Test { 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()); }}
运行结果:
Current State: State #4First saved State: State #2Second saved State: State #3
阅读全文
0 0
- java设计模式19_备忘录模式
- java设计模式_备忘录模式
- 设计模式_备忘录模式
- 设计模式_备忘录模式
- 设计模式 _备忘录模式
- Java设计模式_(行为型)_备忘录模式
- 00_设计模式备忘录
- JAVA -备忘录设计模式
- java设计模式---备忘录模式
- java设计模式---备忘录模式
- Java设计模式:备忘录模式
- java设计模式-备忘录模式
- java设计模式-备忘录模式
- Java设计模式--备忘录模式
- java设计模式,备忘录模式
- JAVA设计模式--备忘录模式
- JAVA 设计模式 备忘录模式
- 大话设计模式_备忘录模式
- java设计模式18_解释器模式
- 再谈Android动态链接库
- ubuntu安装mysql
- 用Activity实现对话框效果
- isFinite方法详解
- java设计模式19_备忘录模式
- jedis 保存自定义List和Object对象
- bzoj1748 [Usaco2005 open]Around the world 环球飞行
- 566. Reshape the Matrix/624. Maximum Distance in Arrays/594. Longest Harmonious Subsequence
- 共享经济模式对户外广告行业的启发
- 使用Xshell&Xftp实现远程登录及文件传输
- Klein3000&绞车一次故障排除
- Git—学习与使用
- 如何计算时间复杂度