设计模式 备忘录模式

这个模式回头再看吧,把我给绕蒙圈了。

public class Memento {
	
	private String state;
	

	public Memento (String state)
	{
		this.state=state;
	}
	

	public String getState() {
		return state;
	}
}


public class Originator {

	private String state;

	
	public Memento CreateMemento()
	{
		return new Memento(state);
	}
	
	public void SetMemento(Memento memento)
	{
		state = memento.getState();
	}
	
	public void Show()
	{
		System.out.println("State="+state);
	}
	
	
	
	public String getState() {
		return state;
	}

	public void setState(String state) {
		this.state = state;
	}


	
}


public class Caretaker {

	private Memento memento;

	public Memento getMemento() {
		return memento;
	}

	public void setMemento(Memento memento) {
		this.memento = memento;
	}
	
	
}

测试程序


public class Program {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Originator originator = new Originator();
		originator.setState("On");
		originator.Show();
		
		Caretaker caretaker = new Caretaker();
		caretaker.setMemento(originator.CreateMemento());
		
		originator.setState("off");
		originator.Show();
		
		originator.SetMemento(caretaker.getMemento());
		originator.Show();
		
	}

}

posted @ 2016-11-08 21:39  yufenghou  阅读(146)  评论(0)    收藏  举报