备忘录模式
来源:互联网 发布:mac qq日历 编辑:程序博客网 时间:2024/06/06 01:35
定义
在不破坏封装行的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将对象恢复到原先保存的状态。
结构与说明
Memento : 备忘录。用来存储源发器对象的内部状态
Originator : 源发器。使用备忘录保存某个时刻源发器自身的状态,也可以使用备忘录恢复内部状态
Caretaker : 备忘录管理者,负责存储备忘录对象,以及对备忘录对象的检查
实现
//定义一个备忘录的窄接口,具体实现在源发器的内部类实现public interface Memento{}//源发器类public class Originator{ public Memento createMementor(){ //一些业务操作 return new MementoImpl(); } //恢复源发器状态 public void reset(Memento memento){ MementoImpl mem = (MementoImpl)memento; //恢复的业务流程操作 } /* *定义静态内部类,实现窄接口,在源发器内部,就是宽接口啦,静态static方便 *外部使用 */ private static class MementoImpl implements Memento{ //状态的一些参数 public MementoImpl(...params values){ //存储操作 } public returnType getState(){ return ....; }}}public Caretaker{ private Memento memento = null; public vouid saveMemento(Memento _memento){ this.memento = _memento; } public Memento retriveMemento(){ return memento; }}//进行客户端调用
在进行备忘录的实现的时候,当对象数据量特别大,或者用户操作很频繁,以及备忘录数量特别大的时候,都存在很大的性能开销。毕竟,备忘录是使用缓存实现的。
建议备忘录和clone的原型模式一起使用
No Final is final
By Xu.j.h
0 0
- 备忘录模式
- 备忘录模式
- 备忘录模式
- 备忘录模式
- 备忘录模式
- 备忘录模式
- 备忘录模式
- 备忘录模式
- 备忘录模式
- 备忘录模式
- 备忘录模式
- 备忘录模式
- 备忘录模式
- 备忘录模式
- 备忘录模式
- 备忘录模式
- 备忘录模式
- 备忘录模式
- HTML5基本元素使用
- 先从浅显看三层
- 【基础篇系列4】java核心(上)
- 一个优秀程序员具备的15个特性
- Cocos2d-x 3.0final 终结者系列教程20 《2048》手游开发揭秘
- 备忘录模式
- UGUI渲染优先级
- [转]MyEclipse第一个Servlet程序 --解决Win7系统下MyEclipse与Tomcat连接问题
- 机房收费--模块应用:控件为空、全部清空、是否为数字
- 计算两个并联电阻的值
- 设计模式——适配器模式
- 各种乱码问题总结
- Unity通过鼠标或者手势实现拉进拉远,旋转等操作的常用方法
- CGRectContainsPoint的简单用法