设计模式java——备忘录模式

备忘录模式(Memento):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。

备忘录模式Demo:

/**
 * 2018年4月1日下午11:54:24
 */
package com.Designpattern;

/**
 * @author xinwenfeng
 *
 */
public class TestMemento {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Originator o = new Originator();
		o.setState("折纸到第三步成功");
		o.show();
		
		MyCaretaker c = new MyCaretaker();
		MyMemento m = o.CreateMemento();//创建备忘录
		c.setMemento(m);//交给管理者
		
		o.setState("折纸到第四部错误");
		o.show();
		
		o.SetMemento(c.getMemento());//从管理者拿到备忘录并回滚
		o.show();
		
	}

}
//备忘录
class MyMemento{
	private String state;
	
	public MyMemento(String s) {
		state = s;
	}

	public String getState() {
		return state;
	}
}
//管理者
class MyCaretaker{
	private MyMemento memento;

	public MyMemento getMemento() {
		return memento;
	}

	public void setMemento(MyMemento memento) {
		this.memento = memento;
	}
	
}
class Originator{
	private String state;//属性

	public String getState() {
		return state;
	}

	public void setState(String state) {
		this.state = state;
	}
	
	public MyMemento CreateMemento() {
		return new MyMemento(state);//将当前属性保存,并得到备忘录
	}
	
	public void SetMemento(MyMemento m) {
		state = m.getState();//将当前属性设置成备忘录里的
	}
	public void show() {
		System.out.println("操作:"+state);
	}
}

结果:


猜你喜欢

转载自blog.csdn.net/flylikebutterfly/article/details/79783645