当前位置: 移动技术网 > IT编程>开发语言>Java > Java设计模式之备忘录模式(Memento模式)介绍

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

2019年07月22日  | 移动技术网IT编程  | 我要评论

古丽巴哈,天通苑论坛,fusion.apk

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模式。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网