作者: 一去、二三里
个人微信号: iwaleon
微信公众号: 高效程序员
备忘录模式(Memento Pattern)在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。
模式结构
UML 结构图:
- Originator(发起人):负责创建一个 Memento,以记录当前时刻自身的内部状态,并可以使用 Memento 恢复内部状态。Originator 可以根据需要决定 Memento 储存自己的哪些内部状态。
- Memento(备忘录):负责存储 Originator 对象的内部状态,并可以防止 Originator 以外的其他对象访问备忘录。
- Caretaker(管理者):负责管理 Memento,但不能对 Memento 的内容进行访问或者操作。
优缺点
优点:
- 提供了一种状态恢复机制,使用户能够方便地回到某个历史的状态。
- 实现了信息的封装,使得用户不需要关心状态的保存细节。
缺点:
- 如果 Originator 对象