设计模式之Memento(备忘机制)
来源:互联网 发布:模拟乐器 软件 编辑:程序博客网 时间:2024/05/14 05:04
Memento备望录模式定义:
memento是一个保存另外一个对象内部状态拷贝的对象.这样以后就可以将该对象恢复到原先保存的状态.
Memento模式相对也比较好理解,我们看下列代码:
public class Originator { private int number; private File file = null; public Originator(){} // 创建一个Memento // 恢复到原始值 }
|
我们再看看Memento类:
private class Memento implements java.io.Serializable{ private int number; private File file = null; public Memento( Originator o){ number = o.number; } } |
可见 Memento中保存了Originator中的number和file的值. 通过调用Originator中number和file值改变的话,通过调用setMemento()方法可以恢复.
Memento模式的缺点是耗费大,如果内部状态很多,再保存一份,无意要浪费大量内存.
Memento模式在Jsp+Javabean中的应用
在Jsp应用中,我们通常有很多表单要求用户输入,比如用户注册,需要输入姓名和Email等, 如果一些表项用户没有填写或者填写错误,我们希望在用户按"提交Submit"后,通过Jsp程序检查,发现确实有未填写项目,则在该项目下红字显示警告或错误,同时,还要显示用户刚才已经输入的表项.
如下图中 First Name是用户已经输入,Last Name没有输入,我们则提示红字警告.:
这种技术的实现,就是利用了Javabean的scope="request"或scope="session"特性,也就是Memento模式.
具体示例和代码见 JavaWorld的英文原文 , Javabean表单输入特性参见我的另外一篇文章.
- 设计模式之Memento(备忘机制)
- 设计模式之Memento(备忘机制)
- 设计模式之Memento(备忘机制)
- 设计模式之Memento(备忘机制)
- 设计模式之Memento(备忘机制)
- 设计模式之Memento(备忘机制)
- 设计模式之(十三)备忘机制Memento
- 设计模式(十三)之 Memento(备忘机制)
- 设计模式之Memento备忘模式
- 行为模式之Memento(备忘机制)
- 设计模式之memento模式(备忘模式)
- 设计模式之Memento
- 设计模式之Memento
- 设计模式之 memento
- 设计模式之MemenTo模式
- 设计模式之Memento模式
- 设计模式与泡mm的关系之Memento备忘模式及再思考
- 设计模式之Memento(备忘录)
- 设计模式之Chain of Responsibility(职责链)
- 温和由中国引领
- 设计模式之Mediator(中介者)
- 设计模式之State
- perl子例程参数传递方式初探
- 设计模式之Memento(备忘机制)
- 设计模式之Interpreter(解释器)
- 设计模式之Visitor
- 系统发生 1219 错误。提供的凭据与已存在的凭据集冲突。
- 在asp.net生成的word文档中插入图片
- 一份详尽的IPC$入侵资料
- Using Netscape Server Push Technology with ASP
- 项目源代码目录结构建议【原创】
- SQL Server Null的比较运算