最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java設(shè)計(jì)模式之備忘錄模式(Memento模式)介紹

 更新時(shí)間:2015年03月11日 09:41:57   投稿:junjie  
這篇文章主要介紹了Java設(shè)計(jì)模式之備忘錄模式(Memento模式)介紹,memento是一個(gè)保存另外一個(gè)對(duì)象內(nèi)部狀態(tài)拷貝的對(duì)象,這樣以后就可以將該對(duì)象恢復(fù)到原先保存的狀態(tài),需要的朋友可以參考下

Memento定義:memento是一個(gè)保存另外一個(gè)對(duì)象內(nèi)部狀態(tài)拷貝的對(duì)象,這樣以后就可以將該對(duì)象恢復(fù)到原先保存的狀態(tài)。

Memento模式相對(duì)也比較好理解,我們看下列代碼:

復(fù)制代碼 代碼如下:

public class Originator {
   private int number;
  private File file = null;
  public Originator(){}
  // 創(chuàng)建一個(gè)Memento
  public Memento getMemento(){
    return new Memento(this);
  }
  // 恢復(fù)到原始值
  public void setMemento(Memento m){
     number = m.number;
     file = m.file;
  }
}

我們?cè)倏纯碝emento類:

復(fù)制代碼 代碼如下:

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的值。通過調(diào)用Originator中number和file值改變的話,通過調(diào)用setMemento()方法可以恢復(fù)。

Memento模式的缺點(diǎn)是耗費(fèi)大,如果內(nèi)部狀態(tài)很多,再保存一份,無意要浪費(fèi)大量?jī)?nèi)存。

Memento模式在Jsp+Javabean中的應(yīng)用

在Jsp應(yīng)用中,我們通常有很多表單要求用戶輸入,比如用戶注冊(cè),需要輸入姓名和Email等,如果一些表項(xiàng)用戶沒有填寫或者填寫錯(cuò)誤,我們希望在用戶按"提交Submit"后,通過Jsp程序檢查,發(fā)現(xiàn)確實(shí)有未填寫項(xiàng)目,則在該項(xiàng)目下紅字顯示警告或錯(cuò)誤,同時(shí),還要顯示用戶剛才已經(jīng)輸入的表項(xiàng)。

如下圖中 First Name是用戶已經(jīng)輸入,Last Name沒有輸入,我們則提示紅字警告:

這種技術(shù)的實(shí)現(xiàn),就是利用了Javabean的scope="request"或scope="session"特性,也就是Memento模式。

相關(guān)文章

  • Java SSM配置文件案例詳解

    Java SSM配置文件案例詳解

    這篇文章主要介紹了Java SSM配置文件案例詳解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • 淺談Java當(dāng)作數(shù)組的幾個(gè)應(yīng)用場(chǎng)景

    淺談Java當(dāng)作數(shù)組的幾個(gè)應(yīng)用場(chǎng)景

    數(shù)組可以存放多個(gè)同一類型的數(shù)據(jù),可以存儲(chǔ)基本數(shù)據(jù)類型,引用數(shù)據(jù)類型(對(duì)象),下面這篇文章主要給大家介紹了關(guān)于Java當(dāng)作數(shù)組的幾個(gè)應(yīng)用場(chǎng)景,需要的朋友可以參考下
    2022-11-11
  • Java使用jxl庫輕松玩轉(zhuǎn)Excel表操作

    Java使用jxl庫輕松玩轉(zhuǎn)Excel表操作

    jxl?是一個(gè)非常實(shí)用的?Java?庫,專門用于操作?Excel?表格,這篇文章主要為大家介紹了如何使用jxl進(jìn)行Excel的基本操作,有需要的可以了解下
    2025-02-02
  • 解析Java線程同步鎖的選擇方法

    解析Java線程同步鎖的選擇方法

    本篇文章是對(duì)Java線程同步鎖的選擇方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • SpringBoot使用RestTemplate實(shí)現(xiàn)HTTP請(qǐng)求詳解

    SpringBoot使用RestTemplate實(shí)現(xiàn)HTTP請(qǐng)求詳解

    這篇文章主要為大家詳細(xì)介紹了SpringBoot如何使用RestTemplate實(shí)現(xiàn)進(jìn)行HTTP請(qǐng)求,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03
  • Spring Boot jar 啟動(dòng)時(shí)設(shè)置環(huán)境參數(shù)的操作

    Spring Boot jar 啟動(dòng)時(shí)設(shè)置環(huán)境參數(shù)的操作

    這篇文章主要介紹了Spring Boot jar 啟動(dòng)時(shí)設(shè)置環(huán)境參數(shù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Spring中的AutowireCandidateResolver的具體使用詳解

    Spring中的AutowireCandidateResolver的具體使用詳解

    這篇文章主要介紹了Spring中的AutowireCandidateResolver的具體使用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • SpringMVC異常處理的三種方式小結(jié)

    SpringMVC異常處理的三種方式小結(jié)

    本文主要介紹了SpringMVC異常處理的三種方式小結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-09-09
  • java.lang.UnsupportedOperationException的問題解決

    java.lang.UnsupportedOperationException的問題解決

    本文主要介紹了java.lang.UnsupportedOperationException的問題解決,該錯(cuò)誤表示調(diào)用的方法不被支持或不可用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • 關(guān)于?Math.random()生成指定范圍內(nèi)的隨機(jī)數(shù)的公式推導(dǎo)問題

    關(guān)于?Math.random()生成指定范圍內(nèi)的隨機(jī)數(shù)的公式推導(dǎo)問題

    在 java 中,用于生成隨機(jī)數(shù)的 Math 方法 random()只能生成 0-1 之間的隨機(jī)數(shù),而對(duì)于生成指定區(qū)間,例如 a-b 之間的隨機(jī)數(shù),卻只能用相關(guān)計(jì)算公式,今天通過本文給大家介紹Math.random()生成隨機(jī)數(shù)的公式推導(dǎo)問題,感興趣的朋友一起看看吧
    2022-09-09

最新評(píng)論

长春市| 荆门市| 通化县| 承德县| 辽阳市| 莱西市| 汉源县| 东平县| 齐齐哈尔市| 互助| 信丰县| 彭山县| 库车县| 北流市| 汉川市| 兴海县| 天峨县| 中山市| 吴川市| 昌吉市| 大田县| 仁怀市| 菏泽市| 广宁县| 光泽县| 和顺县| 崇州市| 景谷| 龙陵县| 板桥市| 徐汇区| 章丘市| 沂水县| 上犹县| 磐安县| 康定县| 鸡东县| 平安县| 西平县| 建德市| 武城县|