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 程
序检查,发现确实有未填写项目,则在该项目下红字显示警告或错误,同时,还要显示用户刚
才已经输入的表项.
本文详细介绍了Memento模式的概念及其在JSP+JavaBean环境中的应用,包括如何通过Memento类保存和恢复对象状态,避免了内部状态过多导致的内存消耗问题,并提供了实例代码进行演示。
606

被折叠的 条评论
为什么被折叠?



