日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

深入理解JAVA 備忘錄模式

瀏覽:22日期:2022-08-30 13:22:23

備忘錄模式

備忘錄模式(Memento Pattern)保存一個(gè)對(duì)象的某個(gè)狀態(tài),以便在適當(dāng)?shù)臅r(shí)候恢復(fù)對(duì)象。備忘錄模式屬于行為型模式。

介紹

意圖:

在不破壞封裝性的前提下,捕獲一個(gè)對(duì)象的內(nèi)部狀態(tài),并在該對(duì)象之外保存這個(gè)狀態(tài)。

主要解決:

所謂備忘錄模式就是在不破壞封裝的前提下,捕獲一個(gè)對(duì)象的內(nèi)部狀態(tài),并在該對(duì)象之外保存這個(gè)狀態(tài),這樣可以在以后將對(duì)象恢復(fù)到原先保存的狀態(tài)。

何時(shí)使用:

很多時(shí)候我們總是需要記錄一個(gè)對(duì)象的內(nèi)部狀態(tài),這樣做的目的就是為了允許用戶取消不確定或者錯(cuò)誤的操作,能夠恢復(fù)到他原先的狀態(tài),使得他有'后悔藥'可吃。

如何解決:

通過一個(gè)備忘錄類專門存儲(chǔ)對(duì)象狀態(tài)。

關(guān)鍵代碼:

客戶不與備忘錄類耦合,與備忘錄管理類耦合。

應(yīng)用實(shí)例:

1、后悔藥。

2、打游戲時(shí)的存檔。

3、Windows 里的 ctri + z。

4、IE 中的后退。

5、數(shù)據(jù)庫的事務(wù)管理。

優(yōu)點(diǎn):

1、給用戶提供了一種可以恢復(fù)狀態(tài)的機(jī)制,可以使用戶能夠比較方便地回到某個(gè)歷史的狀態(tài)。

2、實(shí)現(xiàn)了信息的封裝,使得用戶不需要關(guān)心狀態(tài)的保存細(xì)節(jié)。

缺點(diǎn):

消耗資源。如果類的成員變量過多,勢必會(huì)占用比較大的資源,而且每一次保存都會(huì)消耗一定的內(nèi)存。

使用場景:

1、需要保存/恢復(fù)數(shù)據(jù)的相關(guān)狀態(tài)場景。

2、提供一個(gè)可回滾的操作。

注意事項(xiàng):

1、為了符合迪米特原則,還要增加一個(gè)管理備忘錄的類。

2、為了節(jié)約內(nèi)存,可使用原型模式+備忘錄模式。

實(shí)現(xiàn)

備忘錄模式使用三個(gè)類 Memento、Originator 和 CareTaker。Memento 包含了要被恢復(fù)的對(duì)象的狀態(tài)。Originator 創(chuàng)建并在 Memento 對(duì)象中存儲(chǔ)狀態(tài)。Caretaker 對(duì)象負(fù)責(zé)從 Memento 中恢復(fù)對(duì)象的狀態(tài)。

MementoPatternDemo,我們的演示類使用 CareTaker 和 Originator 對(duì)象來顯示對(duì)象的狀態(tài)恢復(fù)。

深入理解JAVA 備忘錄模式

步驟 1

創(chuàng)建 Memento 類。

public class Memento { private String state; public Memento(String state){ this.state = state; } public String getState(){ return state; } }

步驟 2

創(chuàng)建 Originator 類。

public class Originator { private String state; public void setState(String state){ this.state = state; } public String getState(){ return state; } public Memento saveStateToMemento(){ return new Memento(state); } public void getStateFromMemento(Memento Memento){ state = Memento.getState(); }}

步驟 3

創(chuàng)建 CareTaker 類。

import java.util.ArrayList;import java.util.List; public class CareTaker { private List<Memento> mementoList = new ArrayList<Memento>(); public void add(Memento state){ mementoList.add(state); } public Memento get(int index){ return mementoList.get(index); }}

步驟 4

使用 CareTaker 和 Originator 對(duì)象。

public class MementoPatternDemo { public static void main(String[] args) { Originator originator = new Originator(); CareTaker careTaker = new CareTaker(); originator.setState('State #1'); originator.setState('State #2'); careTaker.add(originator.saveStateToMemento()); originator.setState('State #3'); careTaker.add(originator.saveStateToMemento()); originator.setState('State #4'); System.out.println('Current State: ' + originator.getState()); originator.getStateFromMemento(careTaker.get(0)); System.out.println('First saved State: ' + originator.getState()); originator.getStateFromMemento(careTaker.get(1)); System.out.println('Second saved State: ' + originator.getState()); }}

步驟 5

驗(yàn)證輸出。

Current State: State #4First saved State: State #2Second saved State: State #3

以上就是深入理解JAVA 備忘錄模式的詳細(xì)內(nèi)容,更多關(guān)于JAVA 備忘錄模式的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品久久久久久久久久白浆| 国产日韩欧美中文在线| 国产精品欧美在线观看| 日本不卡一二三区黄网| 中文字幕日韩欧美精品高清在线| 国产传媒在线| 成人影视亚洲图片在线| 国产精品久久久久蜜臀| 久久久久久夜| 日韩欧美精品| 久久九九99| 国产精品97| 亚洲经典在线| 日韩一区欧美二区| 日韩专区视频网站| 国产伦精品一区二区三区千人斩 | 亚洲午夜国产成人| 亚洲bt欧美bt精品777| 日韩av一区二| 狠狠久久伊人中文字幕| 黑森林国产精品av| 亚洲国产成人精品女人| 美女国产精品| 欧美日韩在线精品一区二区三区激情综合| 国产一级成人av| 欧美国产一级| 在线一区视频| 国产午夜一区| 神马久久午夜| 三级在线观看一区二区| 日韩精品a在线观看91| 麻豆国产欧美日韩综合精品二区| 日本美女一区| 丝瓜av网站精品一区二区| 久久只有精品| 国产亚洲一区二区手机在线观看 | 蜜桃成人av| 日本综合精品一区| 久久裸体视频| 日韩三级精品| 卡一精品卡二卡三网站乱码| 91精品久久久久久久久久不卡| 亚洲视频www| 久久精品99国产精品日本| 久久99精品久久久野外观看| 国产精品久久久久av电视剧| 亚洲一区欧美| 精品国产18久久久久久二百| 午夜精品免费| 国产欧美啪啪| 欧美日韩免费观看一区=区三区| 欧美日韩91| 久久久久欧美精品| 奇米色欧美一区二区三区| 98精品久久久久久久| 伊人精品在线| 国产精品久久久免费| 日韩精品欧美激情一区二区| 中文字幕av亚洲精品一部二部| 久久wwww| 99精品美女| 国产精品一区亚洲| 欧美成人精品| 成人污污视频| 亚洲一区免费| 国产白浆在线免费观看| 亚洲影院天堂中文av色| 在线看片国产福利你懂的| 亚洲免费一区三区| 国产日韩欧美三区| 日韩视频一区| 国产91欧美| 日韩精品a在线观看91| 久久中文亚洲字幕| 久久国产精品免费一区二区三区| 欧美日韩国产探花| 高清日韩欧美| 欧美久久香蕉| 亚洲一区二区免费看| 不卡福利视频| 国产精品久久亚洲不卡| 综合激情网站| 欧美日韩激情| 福利欧美精品在线| 欧美一区不卡| 欧美一区=区| 99久久久久| 麻豆久久久久久久| 综合激情网...| 不卡中文字幕| 日韩久久视频| 欧美xxxx中国| 免费看一区二区三区| 天堂va在线高清一区| 国产精品日韩久久久| 久久精品动漫| 日韩欧美1区| 成人午夜毛片| 国产精品高潮呻吟久久久久| 日本va欧美va瓶| 日韩精品一级中文字幕精品视频免费观看 | 日本精品不卡| 国产在视频一区二区三区吞精| 91嫩草精品| 天使萌一区二区三区免费观看| 99久久99久久精品国产片果冰| 国产一区二区三区网| 国产精品亚洲欧美| 亚州av一区| 影音先锋久久精品| 欧美日韩四区| 久久人人99| 欧美成人精品三级网站| 国产一区二区三区四区五区| 国产欧美一区二区色老头| 亚洲毛片在线| 亚洲免费资源| 少妇高潮一区二区三区99| 在线精品福利| 亚洲精品中文字幕99999| 一区二区三区四区精品视频| 亚洲综合精品| 欧美在线网站| 午夜宅男久久久| 久久亚洲精品伦理| 国产精品婷婷| 日韩在线卡一卡二| 一区二区国产在线| 亚洲免费福利一区| 中文字幕一区二区三区在线视频| 亚洲一区黄色| 丝袜美腿亚洲一区| 视频在线在亚洲| 亚洲精选久久| 欧美午夜三级| 精品视频一区二区三区四区五区 | 久久精品成人| 欧美午夜不卡| 日韩网站在线| 日韩一区精品字幕| 日本不卡的三区四区五区| 日韩成人一级| 国产精品xvideos88| 精品久久亚洲| 日韩一区电影| 免费精品国产| 亚洲午夜免费| 国产精品任我爽爆在线播放| 国产精品99一区二区三| 四虎影视精品| 免费国产自线拍一欧美视频| 日本aⅴ免费视频一区二区三区| 久久99久久久精品欧美| 国产一区二区三区亚洲| 99精品视频在线| 亚洲欧美日韩在线观看a三区| 麻豆久久一区| 久久国产成人午夜av影院宅| 黄色日韩精品| 日韩不卡一区二区三区| 精品亚洲二区| 91精品1区| 亚洲欧洲日韩| 国产精品久久久久久久久免费高清| 精品久久在线| 亚洲精品888| 日韩av在线免费观看不卡| 粉嫩av一区二区三区四区五区 | 亚洲精品日韩久久| 麻豆91精品91久久久的内涵| 精品成人免费一区二区在线播放| 女人av一区| 青青国产精品| 中文字幕高清在线播放| 日韩一区二区久久| 日本精品久久| 欧美羞羞视频| 日韩精品一区二区三区av| 9999国产精品| 蜜臀av国产精品久久久久| 国产精品久久久久毛片大屁完整版| 久久毛片亚洲| 蜜桃av一区二区三区电影| 国内一区二区三区| 日韩中文字幕亚洲一区二区va在线| 国产精品免费不| 亚洲欧美在线专区| 中文字幕人成乱码在线观看| 首页国产欧美日韩丝袜| 精品国产亚洲一区二区三区| 黑丝美女一区二区| 国产精品1区| 国产精品三上| 久久99国产精品视频| 国产亚洲激情| 精品视频国产| 日韩一区二区三区四区五区| 亚洲成av人片一区二区密柚| 日本视频一区二区| 在线日韩视频|