pengpenglin
人,必須選擇一種生活方式并有勇氣堅(jiān)持下去
BlogJava
首頁
新隨筆
新文章
聯(lián)系
聚合
管理
posts - 262, comments - 221, trackbacks - 0
設(shè)計(jì)模式總結(jié)-Memento模式(一)
一、Memento模式的目的:
memento是一個(gè)
保存另外一個(gè)對(duì)象內(nèi)部狀態(tài)拷貝
的對(duì)象.這樣以后就可以將該對(duì)象
恢復(fù)到原先保存的狀態(tài)
.
二、Memento模式的簡(jiǎn)單例子:
下面的例子來源于Jdon網(wǎng)站的《GoF設(shè)計(jì)模式系列》的《Memento模式》,雖然簡(jiǎn)單卻形象地表明了Memento模式的應(yīng)用
public
class
Originator
{
private
int
number;
private
File file
=
null
;
public
Originator()
{}
//
創(chuàng)建一個(gè)Memento,將自身作為參數(shù)傳入
public
Memento getMemento()
{
return
new
Memento(
this
);
}
//
從Memento中取出保存的數(shù)據(jù),恢復(fù)為原始狀態(tài)
public
void
setMemento(Memento m)
{
number
=
m.number;
file
=
m.file;
}
}
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模式的特點(diǎn):
在需要提供保存、恢復(fù)對(duì)象狀態(tài)的類中,必須提供兩個(gè)方法:
.保存對(duì)象當(dāng)前狀態(tài)方法:將對(duì)象自身(this)作為參數(shù)傳入,創(chuàng)建備忘錄。
.恢復(fù)對(duì)象之前狀態(tài)的方法:取出備忘錄/接收一個(gè)備忘錄對(duì)象,從中獲取對(duì)象之前的狀態(tài)
模式的缺點(diǎn)是耗費(fèi)大,如果內(nèi)部狀態(tài)很多,再保存一份,無意要浪費(fèi)大量?jī)?nèi)存.
注意:Memento模式保存的是操作前對(duì)象的狀態(tài),而不是操作后對(duì)象的狀態(tài);否則就沒辦法做恢復(fù)了
-------------------------------------------------------------
生活就像打牌,不是要抓一手好牌,而是要盡力打好一手爛牌。
posted on 2008-03-22 17:56
Paul Lin
閱讀(2207)
評(píng)論(0)
編輯
收藏
所屬分類:
模式與重構(gòu)
新用戶注冊(cè)
刷新評(píng)論列表
只有注冊(cè)用戶
登錄
后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關(guān)文章:
設(shè)計(jì)模式總結(jié)-Visitor模式
設(shè)計(jì)模式總結(jié)-Strategy模式
設(shè)計(jì)模式總結(jié)-State模式
設(shè)計(jì)模式總結(jié)-Command模式
設(shè)計(jì)模式總結(jié)-Memento模式(二)
設(shè)計(jì)模式總結(jié)-Memento模式(一)
設(shè)計(jì)模式總結(jié)-Observer模式
設(shè)計(jì)模式總結(jié)-Flyweight模式
設(shè)計(jì)模式總結(jié)-Bridge模式
設(shè)計(jì)模式總結(jié)-Decorator模式(二)
Copyright ©2025 Paul Lin Powered by:
博客園
模板提供:
滬江博客
<
2008年3月
>
日
一
二
三
四
五
六
24
25
26
27
28
29
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
常用鏈接
我的隨筆
我的評(píng)論
我的參與
最新評(píng)論
留言簿
(21)
給我留言
查看公開留言
查看私人留言
隨筆分類
J2EE 框架(9)
J2EE基礎(chǔ)(4)
J2SE(43)
Java 工具(5)
Oracle Concept(4)
Oracle SQL/PLSQL(9)
Oracle 開發(fā)(13)
Oracle 管理(4)
Oracle 調(diào)優(yōu)
Oracle 錯(cuò)誤診斷
RoR(19)
UML(3)
Unix / Linux(13)
Web基礎(chǔ)(19)
其它技術(shù)(7)
感悟(3)
雜項(xiàng)(7)
架構(gòu)與性能(8)
模式與重構(gòu)(19)
灌水(8)
電影與音樂(16)
走過的路(1)
軟件過程與軟件方法(3)
陽光戶外(2)
項(xiàng)目管理(36)
隨筆檔案
2012年2月 (3)
2011年11月 (4)
2011年10月 (1)
2011年9月 (2)
2011年8月 (2)
2011年7月 (5)
2011年6月 (3)
2011年5月 (1)
2011年4月 (1)
2011年3月 (3)
2011年1月 (1)
2010年12月 (1)
2010年11月 (5)
2010年10月 (3)
2010年9月 (1)
2010年7月 (1)
2010年6月 (1)
2010年5月 (4)
2010年4月 (9)
2010年3月 (19)
2010年2月 (8)
2010年1月 (3)
2009年12月 (34)
2009年11月 (1)
2009年10月 (2)
2009年7月 (4)
2009年6月 (5)
2009年5月 (3)
2009年4月 (2)
2009年3月 (1)
2009年2月 (5)
2009年1月 (5)
2008年12月 (13)
2008年11月 (4)
2008年10月 (1)
2008年9月 (6)
2008年8月 (5)
2008年7月 (3)
2008年6月 (31)
2008年5月 (10)
2008年4月 (9)
2008年3月 (7)
2008年2月 (4)
2008年1月 (19)
BlogJava熱點(diǎn)博客
BeanSoft
Jack.Wang
如坐春風(fēng)
詩特林
鄭暉
銀河使者
阿密果
隔葉黃鶯
好友博客
無羽蒼鷹
搜索
最新評(píng)論
1.?re: 【Java基礎(chǔ)專題】編碼與亂碼(01)---編碼基礎(chǔ)[未登錄]
666666666666666666666這幾天正在做個(gè)類似工程編碼出現(xiàn)錯(cuò)誤
--李
2.?re: 【Java基礎(chǔ)專題】IO與文件讀寫---使用Apache commons IO簡(jiǎn)化文件讀寫
不錯(cuò)
--阿斯蘭
3.?re: 【Java基礎(chǔ)專題】編碼與亂碼(03)----String的toCharArray()方法
多謝分享
--thx
4.?re: 【Java基礎(chǔ)專題】編碼與亂碼(05)---GBK與UTF-8之間的轉(zhuǎn)換
評(píng)論內(nèi)容較長,點(diǎn)擊標(biāo)題查看
--karl
5.?re: 【Java基礎(chǔ)專題】編碼與亂碼(01)---編碼基礎(chǔ)[未登錄]
謝謝,幫了我大忙!
--小龍
閱讀排行榜
1.?Oracle中如何插入特殊字符:& 和 ' (多種解決方案)(48446)
2.?getOutputStream() has already been called for this response的解決方法(43350)
3.?【Java基礎(chǔ)專題】編碼與亂碼(05)---GBK與UTF-8之間的轉(zhuǎn)換(37031)
4.?360安全衛(wèi)士誤刪audiosrv.dll文件造成系統(tǒng)無聲的解決方案(21267)
5.?Java中讀取字節(jié)流并按指定編碼轉(zhuǎn)換成字符串的方法(17318)
評(píng)論排行榜
1.?360安全衛(wèi)士誤刪audiosrv.dll文件造成系統(tǒng)無聲的解決方案(33)
2.?【原】Oracle開發(fā)專題之:時(shí)間運(yùn)算(11)
3.?【Java基礎(chǔ)專題】編碼與亂碼(05)---GBK與UTF-8之間的轉(zhuǎn)換(11)
4.?getOutputStream() has already been called for this response的解決方法(10)
5.?【原】Oracle開發(fā)專題之:分析函數(shù)(OVER)(8)
主站蜘蛛池模板:
中文字幕亚洲乱码熟女一区二区
|
免费久久人人爽人人爽av
|
久久久无码精品亚洲日韩蜜桃
|
永久免费视频v片www
|
在线看无码的免费网站
|
九九99热免费最新版
|
亚洲AV无码专区在线厂
|
亚洲午夜在线播放
|
亚洲高清资源在线观看
|
亚洲国产精品无码成人片久久
|
亚洲一二成人精品区
|
亚洲色图综合在线
|
免费国产a国产片高清网站
|
男男AV纯肉无码免费播放无码
|
99热在线精品免费播放6
|
中文字幕视频免费在线观看
|
免费大片av手机看片
|
春暖花开亚洲性无区一区二区
|
33333在线亚洲
|
亚洲成人网在线播放
|
亚洲午夜精品久久久久久人妖
|
亚洲国产精品无码久久一区二区
|
一区二区3区免费视频
|
美女视频黄频a免费
|
羞羞视频免费网站含羞草
|
亚洲女女女同性video
|
亚洲日韩精品无码专区加勒比☆
|
亚洲国产精品久久人人爱
|
久久久久亚洲AV无码观看
|
色拍自拍亚洲综合图区
|
亚洲一区中文字幕久久
|
亚洲一区二区三区夜色
|
亚洲精品亚洲人成在线麻豆
|
亚洲福利视频网址
|
久久精品国产亚洲av麻豆蜜芽
|
亚洲国产亚洲综合在线尤物
|
亚洲国产av一区二区三区丶
|
国产成+人+综合+亚洲专
|
亚洲色精品三区二区一区
|
亚洲av永久中文无码精品综合
|
台湾一级毛片永久免费
|