备忘录模式的学习与实践
模式定义
在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。
类图
- Originator 发起人角色 记录当前时刻的内部状态,负责定义哪些属于备份范围的状态,负责创建和恢复备忘录数据。
- Memento 备忘录角色 负责存储Originator发起人对象的内部状态,在需要的时候提供发起人需要的内部状态。
- Caretaker 备忘录管理员角色 对备忘录进行管理、保存和提供备忘录。
优点
缺点
使用场景
- 需要保存和回数数据的相关状态场景。
- 提供一个可回滚的操作。
- 需要监控的副本场景中。
- 数据库连接的事物管理。
注意事项
- 备忘录的生命期。
- 备忘录的性能。
扩展
- clone方式的备忘录
- 多状态的备忘录
- 多备份的备忘录
- 封装性更好的备忘录
实践
简单实现
1 |
|
参考资料
- 设计模式之禅
- GoF+23种设计模式解析