目录

大话设计模式18:备忘录模式

大话设计模式:18.备忘录模式

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

TL;DR:通过外部的类将类的状态存储起来,配合记录和读取的方法,封装存取细节

备忘录模式结构图

1.优点

  1. 将复杂对象的内部信息对其他的对象屏蔽起来
  2. 当对象的状态改变时,如果状态无效,可以使用暂存的备忘录将状态恢复

2.实现细节

  1. Originator:负责创建备忘录,用以记录当前时刻的内部状态,并可使用备忘录恢复内部状态
  2. Memento:负责存储 Originator 对象的内部状态,并防止 Originator 以外的对象访问被备忘录
  3. Caretaker:负责保存备忘录,不能对备忘录内容进行操作或检查

3.使用场景

  1. 适用于功能比较复杂的,但需要维护或者记录属性历史的类
  2. 或者需要保存的属性只是众多属性中的一小部分,无需用相同的实例保存,而又不想使用 Clone 的方式保存,以避免对上层应用开放 Originator 的接口