网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.用java实现人工智能中的A*算法求.
.在Java应用程序中监视CPU的使用.
.多态与面向对象(一).
.ant - java 构建工具 - hello a.
.通过实例论证J2ME的事件传输机制.
.写Java程序最容易犯的21种错误.
.Struts 中 html:options 的使用.
.Javadoc 利弊分析.
.Java语言已成为手机通讯标准 微软.
.What Is Java.
.Enterprise JavaBeans 基础知识简.
.EJB 2.1中实现Web Service.
.用Java Web服务打造聊天程序.
.Java方法过载.
.一个经典的JAVA APPLET时钟程序(.
.applet的参数化--对数组进行初始.
.软件资产重用的具体内容.
.Java应用程序中加载位图文件的逐.
.Java高级编程:使用打印服务API二.
.RemoveAll 方法.

java设计模式之Memento(恢复对象原状态)

发表日期:2008-1-5



  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没有输入,我们则提示红字警告.:
  
java设计模式之Memento(恢复对象原状态)

  这种技术的实现,就是利用了Javabean的scope="request"或scope="session"特性,也就是Memento模式.
上一篇:java设计模式之Template(算法的骨架) 人气:1259
下一篇:用Java测试网络代码 人气:744
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐