程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java設計形式之備忘錄形式(Memento形式)引見

Java設計形式之備忘錄形式(Memento形式)引見

編輯:關於JAVA

Java設計形式之備忘錄形式(Memento形式)引見。本站提示廣大學習愛好者:(Java設計形式之備忘錄形式(Memento形式)引見)文章只能為提供參考,不一定能成為您想要的結果。以下是Java設計形式之備忘錄形式(Memento形式)引見正文


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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved