备忘录模式:保存发起人的状态(状态对应的数据结构,如属性等信息),此模式与命令模式相对应(如行为--即方法等信息)。
定义:在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可以把该对象恢复到原先的状态。
- 发起人角色Originator:记录当前时刻的内部状态,负责创建和恢复备忘录数据。
- 备忘录角色Memento:负责存储 发起人角色 对象的内部状态,在进行恢复时提供给发起人需要的状态。
- 管理者角色Caretaker:备忘录角色的管理者。
//发起人角色 public class Originator { //记录当前时刻的内部状态 public string State{ get; set;} //创建备忘录 public Memento CreateMemento() { return new Memento(this.State); } //回复备忘录 public void RecoverMemento(Memento memento) { this.State = memento.State; } } //备忘录角色 public class Memento { //记录备份的状态 public string State{ get; set;} public Memento(string state) { this.State=state; } } //备忘录管理者角色 public class CareTaker { public Memento MementoTaker { get; set; } }