备忘录模式是一种软件设计模式:在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。
类图如下
Memento
public class Memento
{
private string memory;
public Memento(string memory)
{
this.memory = memory;
}
public void SetState(string memory)
{
this.memory = memory;
}
public string GetState()
{
return memory;
}
}
Originator
public class Originator
{
private string memory;
public void SetMemory(string memory)
{
this.memory = memory;
}
public Memento SaveToMemento()
{
return new Memento(memory);
}
public void RestoreFromMemento(Memento memento)
{
this.memory = memento.GetState();
}
}
CareTaker
public class CareTaker
{
private List<Memento> Mementos = new List<Memento>();
public void Add(Memento memento)
{
this.Mementos.Add(memento);
}
public Memento Get(int index)
{
return this.Mementos[index];
}
}
使用
static void Main(string[] args)
{
CareTaker careTaker = new CareTaker();
Originator originator = new Originator();
originator.SetMemory("m1");
careTaker.Add(originator.SaveToMemento());
originator.SetMemory("m2");
originator.RestoreFromMemento(careTaker.Get(0));
}
作用:
将状态保存,可以进行快速恢复
源代码地址: 点击我下载 提取码: uke9