备忘录模式

class Memento
{
	private String state="";
	public Memento(String _state)
	{
		this.state= _state;
	}
	
	public String getState()
	{
		return state;
	}
	
	public void setState(String s)
	{
		this.state = s;
	}
}

 

public class Originator
{
 //内部状态
 private String state="";
 
 public String getState()
 {
  return state;
 }
 
 public void setState(String state)
 {
  this.state = state;
 }
 
 //创建一个备忘录
 public Memento createMemento()
 {
  return new Memento(this.state);
 }
 
 public void restoreMemento(Memento _m)
 {
  this.setState(_m.getState());
 }
}
class Caretaker
{
	private Memento memento;
	public Memento getMemento()
	{
		return memento;
	}
	
	public void setMemento(Memento m)
	{
		this.memento = m;
	}
}

 

public class Client
{
	public static void main(String[] args)
	{
		//定义发起人
		Originator originator = new Originator();
		Caretaker caretaker = new Caretaker();
		//创建一个备忘录
		caretaker.setMemento(originator.createMemento());
		//恢复一个
		originator.restoreMemento(caretaker.getMemento());
	}
}

 原理很简单

A有很多状态,把自己的snapshot快照给管理员B

需要的时候就从B那里取出之前的快照来恢复自己。

真的很简单!

你可能感兴趣的:(备忘录模式)