设计模式 - 备忘录模式
定义
Without violating encapsulation, capture and externalize an object's internal state so that the object can be restored to this state later.
aks:snapshot
UML
-
基于嵌套类
-
基于中间接口
-
更严格的封装
实例
游戏进度,回滚操作,数据库事务管理,
- 需要创建对象快照来恢复之前的状态。
- 不能之间访问对象的成员变量、getter、setter等。
比较
比较 | 备忘录模式 | 备注 |
---|---|---|
命令模式 | 同时使用实现“撤销”。备忘录保存一条命令执行前该对象的状态。 | 命令对目标对象执行各种不同的操作 |
迭代器模式 | 同时使用来获取当前迭代器的状态,在必要时回滚 | |
原型模式 | 原型是可以看作备忘录的简化版本,只要满足 历史纪录中存储的对象状态比较简单,不需要链接其他外部资源,或者链接可以方便地重建 |
|