定义
备忘录模式(Memento Pattern)又称为快照模式(Snapshot Pattern)或令牌模式(Token Pattern),是指在不破坏封装的前提下,捕获一个对象的内部状态,并在对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。
特征:“后悔药”。
属于行为型模式。
适用场景
- 需要保存历史快照的场景
- 希望在对象之外保存状态,且除了自己,其他类对象无法访问状态保存具体内容。
举例
- Spring-webflow StateManageableMessageContext接口 createMessageMemento方法
优点
- 简化发起人实体类(Originator)职责,隔离状态存储与获取,实现了信息的封装。客户端无需关心状态的保存细节。
- 提供状态回滚功能。
缺点
- 消耗资源:如果需要保存的状态过多时,每一次保存都会消耗很多内存。