chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

設(shè)計(jì)模式:備忘錄設(shè)計(jì)模式

冬至子 ? 來(lái)源:墨風(fēng)如雪小站 ? 作者:墨風(fēng)如雪 ? 2023-06-06 11:19 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

模式描述

備忘錄設(shè)計(jì)模式(Memento Design Pattern)是一種行為型設(shè)計(jì)模式,它的主要目的是在不破壞對(duì)象封裝性的前提下,捕捉和保存一個(gè)對(duì)象的內(nèi)部狀態(tài),以便稍后可以將對(duì)象恢復(fù)到該狀態(tài)。這種模式通常用于實(shí)現(xiàn)撤銷(xiāo)和重做操作。

主要角色

1、備忘錄(Memorandum) :保存了發(fā)起人的狀態(tài),從而能夠在適當(dāng)?shù)臅r(shí)候恢復(fù)狀態(tài)。2. 發(fā)起人(Originator) :創(chuàng)建一個(gè)備忘錄,以表示其當(dāng)前狀態(tài),并可以從備忘錄中恢復(fù)狀態(tài)。

引用場(chǎng)景

1.后退/前進(jìn):瀏覽器的后退/前進(jìn)就是緩存頁(yè)面狀態(tài)的典型例子。2.撤銷(xiāo)/重做:通?;趥渫浤J綄?shí)現(xiàn)撤銷(xiāo)和重做操作。3.快照:保存某個(gè)時(shí)間點(diǎn)對(duì)象的狀態(tài)快照。

設(shè)計(jì)要點(diǎn)

1.僅僅存儲(chǔ)狀態(tài):備忘錄僅存儲(chǔ)對(duì)象的內(nèi)部狀態(tài),而不是存儲(chǔ)對(duì)象的引用。2.完全封裝:外部不會(huì)訪(fǎng)問(wèn)到備忘錄類(lèi)。3.避免權(quán)限問(wèn)題:發(fā)起人應(yīng)該具有創(chuàng)建和訪(fǎng)問(wèn)備忘錄的權(quán)限。

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

?輕松實(shí)現(xiàn)對(duì)象狀態(tài)的快照和恢復(fù)?分離了對(duì)象與狀態(tài)的保存與恢復(fù)過(guò)程?需要額外的空間來(lái)存儲(chǔ)狀態(tài)

與備忘錄模式類(lèi)似的模式

?原型模式:對(duì)一個(gè)對(duì)象進(jìn)行克隆,產(chǎn)生一個(gè)與原對(duì)象類(lèi)似的新對(duì)象。

Java代碼示例

首先,我們創(chuàng)建一個(gè)發(fā)起人(Originator)類(lèi),它具有保存和恢復(fù)狀態(tài)的能力:

publicclassOriginator{
privateString state;


publicvoid setState(String state){
this.state = state;
}


publicString getState(){
return state;
}


publicMemento saveStateToMemento(){
returnnewMemento(state);
}


publicvoid getStateFromMemento(Memento memento){
        state = memento.getState();
}
}

接下來(lái),我們創(chuàng)建備忘錄(Memento)類(lèi),用于保存發(fā)起人的狀態(tài):

publicclassMemento{
privateString state;


publicMemento(String state){
this.state = state;
}


publicString getState(){
return state;
}
}

現(xiàn)在,我們創(chuàng)建一個(gè)負(fù)責(zé)人(Caretaker)類(lèi),用于管理備忘錄:

import java.util.ArrayList;
import java.util.List;


publicclassCaretaker{
privateList< Memento > mementoList =newArrayList<  >();


publicvoid add(Memento state){
        mementoList.add(state);
}


publicMementoget(int index){
return mementoList.get(index);
}
}

最后,我們?cè)谥黝?lèi)中使用這些類(lèi):

publicclassMementoPatternDemo{
publicstaticvoid main(String[] args){
Originator originator =newOriginator();
Caretaker caretaker =newCaretaker();


        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());
}
}

擴(kuò)展知識(shí)點(diǎn)

備忘錄模式與命令模式(Command Pattern)可以結(jié)合使用,以實(shí)現(xiàn)更加強(qiáng)大的撤銷(xiāo)/重做功能。命令模式可以用來(lái)記錄操作的順序和執(zhí)行操作,而備忘錄模式用來(lái)記錄操作前后的狀態(tài)。這樣一來(lái),我們可以輕松地在操作序列中向前或向后移動(dòng),同時(shí)還可以保留每個(gè)操作的上下文信息。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • JAVA
    +關(guān)注

    關(guān)注

    20

    文章

    2992

    瀏覽量

    114764
  • JAVA語(yǔ)言
    +關(guān)注

    關(guān)注

    0

    文章

    138

    瀏覽量

    20963
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    HarmonyOS開(kāi)發(fā)實(shí)例:【手機(jī)備忘錄

    基于用戶(hù)首選項(xiàng),實(shí)現(xiàn)了備忘錄新增、更新、刪除以及查找等功能。
    的頭像 發(fā)表于 04-18 21:40 ?1506次閱讀
    HarmonyOS開(kāi)發(fā)實(shí)例:【手機(jī)<b class='flag-5'>備忘錄</b>】

    PostgreSQL操作備忘錄

    PostgreSQL 操作備忘錄
    發(fā)表于 05-23 08:48

    UDS診斷命令備忘錄

    UDS實(shí)踐性強(qiáng),邏輯復(fù)雜,很多服務(wù)非要體驗(yàn)過(guò)一次才能理解,導(dǎo)致包括我在內(nèi)的初學(xué)者感覺(jué)晦澀難懂,不明覺(jué)厲,因此將自己的理解寫(xiě)下來(lái)、整理下來(lái),與君共勉。零、UDS診斷命令備忘錄一、簡(jiǎn)介UDS
    發(fā)表于 08-26 16:09

    怎樣去搭建一種基于XR806的開(kāi)源桌面備忘錄

    本人計(jì)劃懟一個(gè)開(kāi)源桌面備忘錄/天氣預(yù)報(bào)/相冊(cè)的項(xiàng)目基于XR806,同時(shí)學(xué)習(xí)鴻蒙操作系統(tǒng)獲得暈哥贈(zèng)送的開(kāi)發(fā)板和芯片,目前處于環(huán)境搭建階段看起來(lái)這個(gè)芯片玩的人比較少,目前遇到了問(wèn)題,不知道如何解決,希望
    發(fā)表于 12-28 06:52

    全球半導(dǎo)體聯(lián)盟與中國(guó)半導(dǎo)體行業(yè)簽署合作備忘錄

    全球半導(dǎo)體聯(lián)盟與中國(guó)半導(dǎo)體行業(yè)簽署合作備忘錄 全球半導(dǎo)體聯(lián)盟(GSA)與中國(guó)半導(dǎo)體行業(yè)協(xié)會(huì)(CSIA)在蘇州聯(lián)合申明簽署合作備忘錄。此次合作將為促
    發(fā)表于 09-24 08:17 ?804次閱讀

    戴姆勒與百度簽署諒解備忘錄

    7月25日,奔馳母公司戴姆勒與百度簽署諒解備忘錄,深化雙方在自動(dòng)駕駛和車(chē)聯(lián)網(wǎng)等領(lǐng)域的戰(zhàn)略合作。
    的頭像 發(fā)表于 07-28 09:53 ?3038次閱讀

    嵌入式軟件設(shè)計(jì)模式 好文值得收藏

    ) ? 03)C語(yǔ)言和設(shè)計(jì)模式(狀態(tài)模式) ? 04)C語(yǔ)言和設(shè)計(jì)模式(命令模式) ? 05)C語(yǔ)言和設(shè)計(jì)模式(解釋器
    的頭像 發(fā)表于 06-20 09:09 ?2391次閱讀

    設(shè)計(jì)模式行為型:備忘錄模式

    備忘錄模式(Memento Pattern)保存一個(gè)對(duì)象的某個(gè)狀態(tài),以便在適當(dāng)?shù)臅r(shí)候恢復(fù)對(duì)象。備忘錄模式屬于行為型模式。
    的頭像 發(fā)表于 06-07 11:16 ?1168次閱讀
    設(shè)計(jì)<b class='flag-5'>模式</b>行為型:<b class='flag-5'>備忘錄</b><b class='flag-5'>模式</b>

    新思科技同越南政府簽署諒解備忘錄

    在越南總理范明政訪(fǎng)美期間,新思科技與越南國(guó)家創(chuàng)新中心(nic)簽署了關(guān)于培養(yǎng)越南集成電路設(shè)計(jì)人才的諒解備忘錄,支持nic成立芯片設(shè)計(jì)孵化中心。另外,新思科技與越南信息通訊部下屬的信息通信技術(shù)產(chǎn)業(yè)公司簽訂了支援越南半導(dǎo)體產(chǎn)業(yè)發(fā)展的諒解備忘錄。
    的頭像 發(fā)表于 09-20 10:56 ?1923次閱讀

    實(shí)踐GoF的23種設(shè)計(jì)模式備忘錄模式

    相對(duì)于代理模式、工廠模式等設(shè)計(jì)模式,備忘錄模式(Memento)在我們?nèi)粘i_(kāi)發(fā)中出鏡率并不高,除了應(yīng)用場(chǎng)景的限制之外,另一個(gè)原因,可能是
    的頭像 發(fā)表于 11-25 09:05 ?974次閱讀
    實(shí)踐GoF的23種設(shè)計(jì)<b class='flag-5'>模式</b>:<b class='flag-5'>備忘錄</b><b class='flag-5'>模式</b>

    蘋(píng)果iOS 18將支持語(yǔ)音備忘錄及數(shù)學(xué)符號(hào)顯示

    首先是語(yǔ)音備忘錄功能。據(jù)悉,蘋(píng)果有意在iOS 18系統(tǒng)中加入此項(xiàng)功能,使iPhone用戶(hù)能夠便捷地錄制音頻文件,并將其直接嵌入至備忘錄之中。
    的頭像 發(fā)表于 04-18 11:14 ?997次閱讀

    華為與巴塞羅那市政府簽署諒解備忘錄

    MWC25巴塞羅那期間,華為與巴塞羅那市政府簽署智慧城市戰(zhàn)略合作諒解備忘錄(以下簡(jiǎn)稱(chēng)“本協(xié)議”)。
    的頭像 發(fā)表于 03-07 15:53 ?695次閱讀

    云知聲與瓦努阿圖政府簽署諒解備忘錄

    近期,云知聲與瓦努阿圖共和國(guó)政府(經(jīng)其駐華大使館代表)(「瓦努阿圖政府」)正式簽署關(guān)于人工智能海外實(shí)施合作和訪(fǎng)問(wèn)邀請(qǐng)的諒解備忘錄(「備忘錄」),并將依據(jù)備忘錄開(kāi)啟緊密戰(zhàn)略合作,展開(kāi)具體項(xiàng)目的部署。
    的頭像 發(fā)表于 07-18 17:28 ?774次閱讀

    普華基礎(chǔ)軟件與英飛凌簽署合作諒解備忘錄

    近日,普華基礎(chǔ)軟件與英飛凌簽署了合作諒解備忘錄,簽約儀式在普華基礎(chǔ)軟件的上??偛繄A滿(mǎn)完成。此次備忘錄的簽約將繼續(xù)深化雙方在汽車(chē)底層軟硬件領(lǐng)域的合作與創(chuàng)新。基于英飛凌AURIX MCU芯片和普華基礎(chǔ)軟件車(chē)用操作系統(tǒng),雙方將打造更安全、更可靠的軟硬件一體化解決方案,助力智能網(wǎng)
    的頭像 發(fā)表于 08-11 09:22 ?1946次閱讀

    洲明科技與Dimension Studio簽署合作備忘錄

    近日,洲明科技與Dimension Studio、Cambridge Picture Company及北京山慕影視文化傳媒有限公司正式簽署合作備忘錄。
    的頭像 發(fā)表于 09-28 18:20 ?768次閱讀