一、模式定义
备忘录模式(Memento Pattern)是一种行为型设计模式,它在不破坏封装性的前提下,捕获并保存一个对象的内部状态,以便在未来将对象恢复到之前保存的状态。因此,备忘录模式也被称为快照模式(Snapshot Pattern)或Token模式。
二、模式角色
备忘录模式包含以下角色:
- Originator(原发器):负责创建备忘录对象,并在需要时恢复状态。
- Memento(备忘录):存储原发器的内部状态。
- Caretaker(负责人):负责保存备忘录对象。
三、模式分析
备忘录模式主要用于备份和回退操作,常见于软件的回退功能。通过备忘录模式,系统可以回退到某个特定的历史状态,提升用户体验。
备忘录对象用于存储另一个对象的内部状态快照,因此备忘录模式也被称为快照模式或Token模式。
典型代码如下:
原发器类:
备忘录类:
负责人类:
四、模式例子
以下是来自《设计模式》一书的例子:
原发器类,创建备忘录类:
备忘录类,保存原发器类状态:
负责人类,创建备忘录:
五、模式应用
备忘录模式在软件中广泛应用,包括:
- 软件中的存档操作
- Windows 中的 Ctrl + Z 撤销操作
- 浏览器中的后退功能
- 数据库的事务管理