频道栏目
首页 > 资讯 > Java > 正文

java设计模式 忘录模式

17-06-07        来源:[db:作者]  
收藏   我要投稿

备忘录模式

备忘录模式(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 mementoList = new ArrayList();

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 #4

First saved State: State #2

Second saved State: State #3

相关TAG标签
上一篇:Material Design风格文本输入样式TextInputLayout的使用
下一篇:ubuntu16.04编译android5.1环境配置
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站