首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Memento形式

2012-09-10 
Memento模式不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后可将该对

Memento模式

不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后可将该对象恢复到原先保存的状态
适用场合:功能较复杂,但需要维护或记录属性历史,或需要保存的属性只是众多属性的一小部分

?

Originator.java

?

Memento.java

package com.gary.designpattern.memento;/** * 测试 * @author gary * */public class Test {public static void main(String[] args) {Originator originator = new Originator();//初始状态originator.setMessageA("hello");originator.setMessageB("world");System.out.println("初始状态: ");System.out.println(originator);Caretaker caretaker = new Caretaker();//保存状态,隐藏Originator实现细节caretaker.setMemento(originator.createMemento());originator.setMessageA("messageA has changed");originator.setMessageB("messageB has changed");System.out.println("改变后: ");System.out.println(originator);//恢复originator.restoreMemento(caretaker.getMemento());System.out.println("恢复后: ");System.out.println(originator);}}

?

热点排行