您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

Java设计模式之备忘录模式(Memento模式)介绍

2024/3/25 3:34:30发布17次查看
memento定义:memento是一个保存另外一个对象内部状态拷贝的对象,这样以后就可以将该对象恢复到原先保存的状态。
memento模式相对也比较好理解,我们看下列代码:
public class originator { private int number; private file file = null; public originator(){} // 创建一个memento public memento getmemento(){ return new memento(this); } // 恢复到原始值 public void setmemento(memento m){ number = m.number; file = m.file; } }
我们再看看memento类:
private class memento implements java.io.serializable{ private int number; private file file = null; public memento( originator o){ number = o.number; file = o.file; } }
可见 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模式。
更多java设计模式之备忘录模式(memento模式)介绍。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product