Memento
定義
:
memento
是一個保存另外一個物件內部狀態拷貝的物件。這樣以後就可以將該物件恢復到原先保存的狀態。
Memento 模式相對也比較好理解 , 我們看下列代碼 :
|
public class Originator { private File file = null; public Originator(){}
//
創建一個
Memento
//
恢復到原始值
}
|
我們再看看 Memento 類別 :
|
private class Memento implements java.io.Serializable{
private int number; private File file = null; public Memento( Originator o){
number = o.number; } }
|
可見 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 模式。
具體示例和代碼見 JavaWorld的英文原文 , Javabean 表單輸入特性參見我的另外 一篇文章。
本文介绍了备忘录模式的基本概念及实现方式,并通过具体代码示例进行了解释。此外,还探讨了该模式在JSP+JavaBean应用中的实际运用场景。
620

被折叠的 条评论
为什么被折叠?



