备忘录模式

定义

  1. 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态

备忘录

  1. Memento 备忘录
    • 备忘录存储原发器对象的内部状态。原发器根据需要决定备忘录存储原发器的哪些内部状态
    • 防止原发器以外的其他对象访问备忘录。备忘录实际上有两个接口,管理者只能看到备忘录的窄接口—它只能将备忘录传递给其他对象。相反,原发器能够看到一个宽接口,允许它返回到先前状态所需的所有数据。理想的情况是只允许生成本备忘录的那个原发器访问本备忘录的内部状态
  2. Originator
    • 原发器创建一个备忘录,用以记录当前时刻它的内部状态
    • 使用备忘录恢复内部状态
  3. Caretaker
    • 负责保存好备忘录
    • 不能对备忘录的内容进行操作或检查

优缺点

  1. 保持封装边界
  2. 它简化了原发器
  3. 使用备忘录可能代价很高
  4. 定义窄接口和宽接口
  5. 维护备忘录的潜在代价

实例

参考

wikipedia