# Why
备忘录模式是一种状态恢复的实现机制。比如撤销功能的实现。
备忘录模式(Memento Pattern):在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存,可在以后将对像恢复到原先保存的状态。
# What
# UML
# 角色
Originator(原发器):将需要保存内部状态的类设计为原发器
Caretaker(负责人):只负责保存备忘录,不能修改对象,也无须知道对象的细节
在设计备忘录类时需要考虑封装性,除了Originator类,不允许其他类调用备忘录类Memento的构造函数和相关方法
# 示例
中国象棋
# 适用场景
- 保存一个对象在某一时刻的全部状态或部分状态,实现撤销操作
- 防止外界对象破环一个对象历史状态的封装性,隐藏对象历史状态的实现细节