目录
what什么是备忘录模式
Gof定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。别名Token。
why为什么需要备忘录模式
使用备忘录有两个目标。
- 存储系统关键对象的重要状态。
- 维护关键对象的封装。
有时有必要记录一个对象的内部状态。为了允许用户取消不确定的操作或从错误中恢复 过来,需要实现检查点和取消机制, 而要实现这些机制,你必须事先将状态信息保存在某处, 这样才能将对象恢复到它们先前的状态。但是对象通常封装了其部分或所有的状态信息, 使得 其状态不能被其他对象访问,也就不可能在该对象之外保存其状态。而暴露其内部状态又将 违反封装的原则,可能有损应用的可靠性和可扩展性。
how如何实现备忘录模式
备忘录模式的主要角色如下。
- 发起人(Originator)角色:记录当前时刻的内部状态信息,提供创建备忘录和恢复备忘录数据的功能,实现其他业务功能,它可以访问备忘录里的所有信息。
- 备忘录(Memento)角色:负责存储发起人的内部状态,在需要的时候提供这些内部状态给发起人。
- 管理者(Caretaker)角色:对备忘录进行管理,提供保存与获取备忘录的功能,但其不能对备忘录的内容进行访问与修改。
开源框架经典案例
Mysql的Redo日志
我们都知道,事务的四大特性里面有一个是 持久性
,具体来说就是只要事务提交成功