欢迎来到天天文库
浏览记录
ID:38373623
大小:31.00 KB
页数:3页
时间:2019-06-11
《设计模式之Memento(备忘机制)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、设计模式之Memento(备忘机制)Memento定义:memento是一个保存另外一个对象内部状态拷贝的对象.这样以后就可以将该对象恢复到原先保存的状态.Memento模式相对也比较好理解,我们看下列代码:publicclassOriginator{ privateintnumber; privateFilefile=null; publicOriginator(){} //创建一个Memento publicMementogetMemento(){ returnnewMemento(this)
2、; } //恢复到原始值 publicvoidsetMemento(Mementom){ number=m.number; file=m.file; }} 我们再看看Memento类:privateclassMementoimplementsjava.io.Serializable{ privateintnumber; privateFilefile=null; publicMemento(Originatoro){ number=o.number; file=o.file;
3、 }} 可见Memento中保存了Originator中的number和file的值.通过调用Originator中number和file值改变的话,通过调用setMemento()方法可以恢复.Memento模式的缺点是耗费大,如果内部状态很多,再保存一份,无意要浪费大量内存.Memento模式在Jsp+Javabean中的应用在Jsp应用中,我们通常有很多表单要求用户输入,比如用户注册,需要输入姓名和Email等,如果一些表项用户没有填写或者填写错误,我们希望在用户按"提交Submit"后,通过Jsp程序检
4、查,发现确实有未填写项目,则在该项目下红字显示警告或错误,同时,还要显示用户刚才已经输入的表项.如下图中FirstName是用户已经输入,LastName没有输入,我们则提示红字警告.:这种技术的实现,就是利用了Javabean的scope="request"或scope="session"特性,也就是Memento模式.具体示例和代码见JavaWorld的英文原文,Javabean表单输入特性参见我的另外一篇文章.
此文档下载收益归作者所有