在不破坏封装的前提下,捕获对象的内部状态,并在对象外存储这个内部状态,以便将来回滚到这一状态。
结构图
锁用来对数据进行锁定,我们可以从锁定对象的粒度大小来对锁进行划分,分别为行锁、页锁和表锁。
角色与理解
- 备忘录模式共分为三种种角色:
- Originator(原发器):需要被记录状态的类
- Memento(备忘录):记录原发器状态的类,内部含有原发器的部分属性或者全部属性,不能被其他类所修改
- Caretaker(管理者):管理备忘录
- 原发器创建备忘录记录此刻内部各属性的值,将备忘录交给管理者管理,回滚状态时,从管理者中获取备忘录,重置内部属性
核心代码
- 原发器
- 备忘录
- 管理者
- 客户端