中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

網(wǎng)站 整體架構(gòu)國內(nèi)seo公司哪家最好

網(wǎng)站 整體架構(gòu),國內(nèi)seo公司哪家最好,七彩云南旅游網(wǎng)頁設(shè)計(jì)畢業(yè)論文,wordpress oss upload目錄 一、 啥是備忘錄模式?二、 為什么要用備忘錄模式?三、 備忘錄模式的實(shí)現(xiàn)方式四、 備忘錄模式的優(yōu)缺點(diǎn)五、 備忘錄模式的應(yīng)用場景六、 總結(jié) 🌟我的其他文章也講解的比較有趣😁,如果喜歡博主的講解方式,…

在這里插入圖片描述

目錄

    • 一、 啥是備忘錄模式?
    • 二、 為什么要用備忘錄模式?
    • 三、 備忘錄模式的實(shí)現(xiàn)方式
    • 四、 備忘錄模式的優(yōu)缺點(diǎn)
    • 五、 備忘錄模式的應(yīng)用場景
    • 六、 總結(jié)

🌟我的其他文章也講解的比較有趣😁,如果喜歡博主的講解方式,可以多多支持一下,感謝🤗!
🌟了解訪問者模式請看: (二 十 一)趣學(xué)設(shè)計(jì)模式 之 訪問者模式!
?更多請看個人主頁: 碼熔burning

這篇文章帶你詳細(xì)認(rèn)識一下設(shè)計(jì)模式中的備忘錄模式

一、 啥是備忘錄模式?

想象一下,你在玩一個游戲 🎮,你打到了一個很高的分?jǐn)?shù),但是你怕后面會失誤,導(dǎo)致分?jǐn)?shù)降低 📉。 這時候,你可以保存一個游戲存檔 💾,這樣即使你后面失誤了,也可以讀檔回到之前的狀態(tài) 🕹?。

備忘錄模式,就是在不破壞封裝性的前提下,捕獲一個對象的內(nèi)部狀態(tài),并在該對象之外保存這個狀態(tài)。這樣以后就可將該對象恢復(fù)到保存的狀態(tài)! 簡單來說,就是給對象做一個“快照”,方便以后恢復(fù) 📸。

簡單來說,就是給對象創(chuàng)建一個“存檔點(diǎn)”,以便在需要的時候可以“讀檔重來”! 💾+🕹?

  • 你需要保存一個對象的內(nèi)部狀態(tài),以便以后可以恢復(fù): 就像你需要保存游戲存檔,以便在失誤后可以讀檔 🎮!
  • 你不想破壞對象的封裝性: 就像你不想直接訪問游戲內(nèi)部的數(shù)據(jù),而是通過存檔來保存狀態(tài) 💾!
  • 你需要支持撤銷操作: 就像你需要支持游戲中的“悔棋”功能 🔙!

二、 為什么要用備忘錄模式?

用備忘錄模式,好處多多 👍:

  • 保存狀態(tài): 可以保存對象的內(nèi)部狀態(tài),方便以后恢復(fù) 💾!
  • 保護(hù)封裝性: 不破壞對象的封裝性 🔒!
  • 支持撤銷: 可以支持撤銷操作 🔙!
  • 簡化對象: 可以將復(fù)雜的對象狀態(tài)存儲到備忘錄中,簡化對象本身 🧘!

三、 備忘錄模式的實(shí)現(xiàn)方式

備忘錄模式主要包含以下幾個角色:

  • 發(fā)起人(Originator): 創(chuàng)建備忘錄,并使用備忘錄恢復(fù)自身狀態(tài) 🕹?。
  • 備忘錄(Memento): 存儲發(fā)起人的內(nèi)部狀態(tài) 💾。
  • 管理者(Caretaker): 負(fù)責(zé)保存?zhèn)渫?#xff0c;但不檢查備忘錄的內(nèi)容 📦。

代碼示例:

// 備忘錄:游戲存檔
class GameMemento {private int score; // 分?jǐn)?shù)private int level; // 關(guān)卡public GameMemento(int score, int level) {this.score = score;this.level = level;}public int getScore() {return score;}public int getLevel() {return level;}
}// 發(fā)起人:游戲角色
class GameRole {private int score; // 分?jǐn)?shù)private int level; // 關(guān)卡public GameRole(int score, int level) {this.score = score;this.level = level;}public int getScore() {return score;}public void setScore(int score) {this.score = score;}public int getLevel() {return level;}public void setLevel(int level) {this.level = level;}// 創(chuàng)建備忘錄public GameMemento createMemento() {return new GameMemento(score, level);}// 從備忘錄恢復(fù)狀態(tài)public void restoreMemento(GameMemento memento) {this.score = memento.getScore();this.level = memento.getLevel();}// 顯示游戲狀態(tài)public void display() {System.out.println("當(dāng)前分?jǐn)?shù):" + score + ",當(dāng)前關(guān)卡:" + level);}
}// 管理者:存檔管理器
class Caretaker {private GameMemento memento; // 備忘錄public GameMemento getMemento() {return memento;}public void setMemento(GameMemento memento) {this.memento = memento;}
}// 客戶端
public class Client {public static void main(String[] args) {GameRole gameRole = new GameRole(1000, 5); // 創(chuàng)建游戲角色gameRole.display(); // 顯示游戲狀態(tài)Caretaker caretaker = new Caretaker(); // 創(chuàng)建存檔管理器caretaker.setMemento(gameRole.createMemento()); // 保存游戲存檔gameRole.setScore(500); // 游戲失誤,分?jǐn)?shù)降低gameRole.setLevel(3); // 關(guān)卡降低gameRole.display(); // 顯示游戲狀態(tài)gameRole.restoreMemento(caretaker.getMemento()); // 讀檔gameRole.display(); // 顯示游戲狀態(tài)}
}

分析:

  • GameMemento 是備忘錄,存儲了游戲角色的分?jǐn)?shù)和關(guān)卡。
  • GameRole 是發(fā)起人,可以創(chuàng)建備忘錄,并使用備忘錄恢復(fù)自身狀態(tài)。
  • Caretaker 是管理者,負(fù)責(zé)保存?zhèn)渫洝?/li>

輸出結(jié)果:

當(dāng)前分?jǐn)?shù):1000,當(dāng)前關(guān)卡:5
當(dāng)前分?jǐn)?shù):500,當(dāng)前關(guān)卡:3
當(dāng)前分?jǐn)?shù):1000,當(dāng)前關(guān)卡:5

四、 備忘錄模式的優(yōu)缺點(diǎn)

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

  • 保存狀態(tài) 💾!
  • 保護(hù)封裝性 🔒!
  • 支持撤銷 🔙!
  • 簡化對象 🧘!

缺點(diǎn):

  • 增加了存儲成本(需要存儲備忘錄) 💰!
  • 管理備忘錄可能會比較復(fù)雜 📦!

五、 備忘錄模式的應(yīng)用場景

  • 需要保存一個對象的內(nèi)部狀態(tài),以便以后可以恢復(fù): 就像你需要保存游戲存檔,以便在失誤后可以讀檔 🎮!
  • 需要支持撤銷操作: 就像你需要支持游戲中的“悔棋”功能 🔙!
  • 需要在事務(wù)管理中實(shí)現(xiàn)回滾操作: 就像數(shù)據(jù)庫事務(wù)需要支持回滾操作 🔄!
  • 需要在編輯器中實(shí)現(xiàn)撤銷/重做功能: 就像 Word 編輯器需要支持撤銷/重做功能 📝!

六、 總結(jié)

  • 備忘錄模式就像給對象創(chuàng)建一個“存檔點(diǎn)”,以便在需要的時候可以“讀檔重來”! 💾+🕹?
  • 優(yōu)點(diǎn)是保存狀態(tài)、保護(hù)封裝性、支持撤銷、簡化對象! 👍
  • 缺點(diǎn)是增加存儲成本、管理備忘錄復(fù)雜! 👎
  • 適用于需要保存對象狀態(tài),并支持撤銷操作的場景! 🎯

希望這篇文章能讓你徹底理解備忘錄模式! 💯 祝你學(xué)習(xí)愉快! 😄
看完請看:(二 十 三)趣學(xué)設(shè)計(jì)模式 之 解釋器模式!

http://www.risenshineclean.com/news/48985.html

相關(guān)文章:

  • 如何創(chuàng)建一個平臺型公司關(guān)鍵字排名優(yōu)化公司
  • 微信公眾平臺做微網(wǎng)站競價排名什么意思
  • 做網(wǎng)站按什么收費(fèi)企業(yè)網(wǎng)站模板源碼
  • 南京金九建設(shè)集團(tuán)網(wǎng)站aso優(yōu)化貼吧
  • 肇慶企業(yè)做網(wǎng)站搜索引擎優(yōu)化案例分析
  • 手機(jī)ui設(shè)計(jì)網(wǎng)站免費(fèi)創(chuàng)建個人博客網(wǎng)站
  • 哪個網(wǎng)站專門做代購寧波seo外包哪個品牌好
  • 支付網(wǎng)站招聘費(fèi)分錄怎么做長尾關(guān)鍵詞愛站網(wǎng)
  • 網(wǎng)站建設(shè)和注冊北京seo包年
  • 一站式網(wǎng)站建設(shè)服務(wù)今日熱搜第一名
  • 開封做網(wǎng)站公司漢獅外貿(mào)網(wǎng)站seo優(yōu)化
  • 建設(shè)網(wǎng)站證書西安百度seo
  • 濟(jì)源網(wǎng)站建設(shè)濟(jì)源百度地圖在線查詢
  • 國外商業(yè)網(wǎng)站設(shè)計(jì)廣東深圳疫情最新消息今天
  • 互聯(lián)網(wǎng)行業(yè)最有前景的十大職業(yè)手機(jī)網(wǎng)站排名優(yōu)化
  • wordpress自動廣告位二級域名和一級域名優(yōu)化難度
  • 撰寫網(wǎng)站的建設(shè)方案北京seo服務(wù)商
  • 賢邦網(wǎng)站建設(shè)app開發(fā)公司網(wǎng)絡(luò)營銷推廣
  • 做網(wǎng)站創(chuàng)業(yè)app排名優(yōu)化
  • 做網(wǎng)站建設(shè)的公司有哪些內(nèi)容房地產(chǎn)估價師考試
  • 電商網(wǎng)站功能介紹百度seo排名優(yōu)化公司推薦
  • 網(wǎng)站建設(shè)沒業(yè)務(wù)互聯(lián)網(wǎng)產(chǎn)品推廣
  • 購物網(wǎng)站建設(shè)網(wǎng)站seo實(shí)戰(zhàn)密碼第三版pdf下載
  • 四川網(wǎng)站建設(shè)培訓(xùn)班百度助手下載安裝
  • 制作網(wǎng)站模板的發(fā)展空間網(wǎng)站搜索引擎優(yōu)化工具
  • 動態(tài)網(wǎng)站開發(fā)采用的關(guān)鍵技術(shù)百度入口網(wǎng)頁版
  • 西安做百度網(wǎng)站的上海職業(yè)技能培訓(xùn)機(jī)構(gòu)一覽表
  • 南昌網(wǎng)站建設(shè)優(yōu)化推廣費(fèi)用百度指數(shù)分析報(bào)告案例
  • 寧波做網(wǎng)站哪家公司好網(wǎng)站設(shè)計(jì)公司蘇州
  • 武漢市二手房交易合同備案在那個網(wǎng)站上做呀如何讓網(wǎng)站快速收錄