设计图和源代码请访问我的github:https://github.com/yangsheng20080808/DesignModel
From Now On,Let us begin Design Patterns。
备忘录模式
定义
- 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。Without violating encapsulation, capture and externalize an object’s internal state so that the object can be restored to this state later.
通用类图:
大家具体查看《设计模式之禅》
备忘录模式的优点:
备忘录模式可以把发起人内部信息对象屏蔽起来,从而可以保持封装的边界。
简化了发起人类。当发起人角色的状态改变的时候,有可能这个状态无效,这时候就可以使用暂时存储起来的备忘录将状态复原
备忘录模式的缺点:
如果状态需要完整地存储到备忘录对象中,那么在资源消耗上面备忘录对象比较昂贵。
- 当发起者对象的状态改变的时候,有可能这个协议无效。如果状态改变的成功率达不到要求,可以考虑采取“假如”协议模式。
备忘录模式的使用场景:
数据库事务管理中的回滚操作
迭代器模式的例子:
大家具体查看《设计模式之禅》