备忘录模式 (Memento Pattern)
备忘录模式(Memento Pattern)是一种行为型设计模式。它允许在不破坏对象封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便在将来的某个时刻可以将对象恢复到先前保存的状态。
一、基础
1. 意图
核心目的:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后可以恢复到原先保存的状态。
2. 使用场景
典型应用:
- 需要保存对象状态快照以便回滚
- 需要实现撤销/重做功能
- 需要保存对象历史状态
- 直接获取对象状态会暴露实现细节
具体案例:
- 文本编辑器的撤销操作
- 游戏存档/读档功能
- 数据库事务回滚
- 浏览器页面历史记录
3. 结构
- 发起人(Originator):负责创建备忘录,记录当前时刻自身的内部状态,并可使用备忘录恢复内部状态。
- 备忘录(Memento):用于存储发起人对象的内部状态,提供必要的获取状态的接口,但不允许外部