一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Java設計模式之備忘錄模式(Memento模式)介紹

Java設計模式之備忘錄模式(Memento模式)介紹

2019-12-11 13:46junjie JAVA教程

這篇文章主要介紹了Java設計模式之備忘錄模式(Memento模式)介紹,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沒有輸入,我們則提示紅字警告:

Java設計模式之備忘錄模式(Memento模式)介紹

這種技術的實現,就是利用了Javabean的scope="request"或scope="session"特性,也就是Memento模式。

延伸 · 閱讀

精彩推薦
  • JAVA教程java之static關鍵字用法實例解析

    java之static關鍵字用法實例解析

    這篇文章主要介紹了java之static關鍵字用法實例解析,包括了static關鍵字的原理講解及用法分析,并附帶了實例說明,需要的朋友可以參考下 ...

    shichen20144632019-12-01
  • JAVA教程Spring Boot設置并使用緩存的步驟

    Spring Boot設置并使用緩存的步驟

    今天小編就為大家分享一篇關于Spring Boot設置并使用緩存的步驟,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小...

    Codenjoyes2532019-06-21
  • JAVA教程java多線程編程之java線程簡介

    java多線程編程之java線程簡介

    線程是程序運行的基本執行單元,線程不僅可以共享進程的內存,而且還擁有一個屬于自己的內存空間,這段內存空間也叫做線程棧 ...

    java教程網4012019-11-04
  • JAVA教程Java中實現可拖放圖片剪裁入門教程

    Java中實現可拖放圖片剪裁入門教程

    這篇文章主要介紹了Java中實現可拖放圖片剪裁入門教程,本文寫給新手,分步驟講解如何實現圖片裁剪,并對每步的代碼作注釋,需要的朋友可以參考下 ...

    junjie3492019-12-08
  • JAVA教程java反射機制示例詳解

    java反射機制示例詳解

    反射就是加載類,并解剖出類的各個組成部分,下面介紹了java反射機制示例,大家參考使用吧 ...

    java技術網2452019-11-05
  • JAVA教程Java鎖之阻塞鎖介紹和代碼實例

    Java鎖之阻塞鎖介紹和代碼實例

    這篇文章主要介紹了Java鎖之阻塞鎖介紹和代碼實例,阻塞鎖與自旋鎖不同,它改變了線程的運行狀態,需要的朋友可以參考下 ...

    junjie2802019-11-29
  • JAVA教程java獲取ip地址示例

    java獲取ip地址示例

    在JSP里,獲取客戶端的IP地址的方法是:request.getRemoteAddr(),這種方法在大部分情況下都是有效的。但是在通過了Apache,Squid等反向代理軟件就不能獲取到客戶...

    Java教程網3802019-11-18
  • JAVA教程Java實現軟件運行時啟動信息窗口的方法

    Java實現軟件運行時啟動信息窗口的方法

    這篇文章主要介紹了Java實現軟件運行時啟動信息窗口的方法,比較實用的功能,需要的朋友可以參考下 ...

    shichen20144672019-11-25
主站蜘蛛池模板: 精品一产品大全 | 青青草国产免费久久久91 | 好大用力深一点女公交车 | 91av最新地址 | 国产无限制自拍 | 国产高清在线播放免费观看 | 操bb| 国产欧美日韩成人 | 欧美一级高清免费a | 高清在线免费观看 | 亚洲国产自| 30分钟的高清视频在线观看 | 欧美在线播放一区二区 | 18捆绑调教在线高清 | 好大水好多好爽好硬好深视频 | 性啪啪chinese东北女人 | pornohd老师18| 娇女的呻吟亲女禁忌h16 | 紧身短裙女教师波多野 | 国产精品 视频一区 二区三区 | 精品手机在线1卡二卡3卡四卡 | 99ri国产在线 | 日本情趣视频 | 公交车揉捏大乳呻吟喘娇 | 四虎影视在线观看永久地址 | 女教师被女同学调教成脚奴 | 69av免费视频| 色综合亚洲天天综合网站 | 四虎永久在线精品波多野结衣 | 曹逼网站| 精品久久久麻豆国产精品 | 亚洲第成色999久久网站 | 欧美1| 精品久久久久久亚洲 | 成人a级特黄毛片 | bbc japanese黑人强行 | 91久久综合| 继攵催眠女乱h调教 | 欧美人交性视频在线香蕉 | 欧美a一片xxxx片与善交 | 精品日韩二区三区精品视频 |