频道栏目
首页 > 程序开发 > 软件开发 > Java > 正文
java设计模式 忘录模式
2017-06-07 10:35:08           
收藏   我要投稿

备忘录模式

备忘录模式(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 注册送白菜381");

originator.setState("State 注册送白菜382");

careTaker.add(originator.saveStateToMemento());

originator.setState("State 注册送白菜383");

careTaker.add(originator.saveStateToMemento());

originator.setState("State 注册送白菜384");

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 注册送白菜384

First saved State: State 注册送白菜382

Second saved State: State 注册送白菜383

点击复制链接 与好友分享!回本站首页
上一篇:java设计模式 解释器模式
下一篇:关于Java跨域的总结
相关文章
图文推荐
点击排行

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

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

注册送白菜38