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

网友投稿 200 2023-08-04


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

Memento定义:memento是一个保存另外一个对象内部状态拷贝的对象,这样以后就可以将该对象恢复到原先保存的状态。

Memento模式相对也比较好理解,我们看下列代码:

复制http://代码 代码如下:

public class Originator {

   private int number;

  priFJrHIHKIvate File file = null;

  public Originator(FJrHIHKI){}

  // 创建一个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模式。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java设计模式之迭代模式(Iterator模式)介绍
下一篇:Java设计模式之解释器模式(Interpreter模式)介绍
相关文章

 发表评论

暂时没有评论,来抢沙发吧~