設計模式入門:備忘錄模式 Memento Pattern

更新 發佈閱讀 2 分鐘

你有沒有曾經正在玩一個遊戲,剛剛過了一個超難的關卡,但突然手滑點錯選項,整個進度被重置了?這時候你一定會希望有個「存檔」功能,能讓你回到之前的關卡。這正是備忘錄模式 Memento Pattern 想解決的問題。


備忘錄模式讓我們能夠保存某個物件的狀態,並在需要時還原這些狀態,像是一個「後悔藥」,讓系統能夠在不破壞原有結構的情況下,返回到某個時間點的狀態。


什麼是備忘錄模式?

備忘錄模式是一種行為型設計模式,用來保存物件的狀態,並允許將來在必要時還原它。就像是你在編輯檔案時,隨時可以保存進度並在需要時「復原」或「重做」那些修改。這種模式讓你可以放心地做出改變,因為隨時可以回到之前的狀態。


我們可以把它想成遊戲裡的存檔點。當你存檔後,可以繼續遊戲,遇到困難時還可以回到存檔點,不用從頭開始。備忘錄模式讓系統的狀態管理變得更加靈活和安全。


備忘錄模式的應用

一個常見的應用例子就是文字編輯器中的「復原」和「重做」功能。每次修改檔案的時候,編輯器會記錄當下的狀態,這樣在你需要取消變更時,可以恢復到之前的版本。這個過程不會破壞檔案的其他部分,還讓你可以安心編輯,隨時回到你覺得合適的版本。


備忘錄模式的優缺點

備忘錄模式的一大優點就是能夠保存和還原狀態,特別適合那些需要頻繁保存進度的系統,例如遊戲、編輯器或者設定管理工具。這樣即使做錯了選擇,也可以快速返回先前的狀態,避免大範圍的損失。


不過這個模式也有缺點。當系統的狀態太大,或者保存狀態的頻率太高時,會佔用很多記憶體,影響效能。因此,使用這個模式時需要謹慎,特別是在大型系統中。


總結一下,備忘錄模式提供了一種優雅的方式來保存和恢復系統狀態,非常適合用於需要「後悔藥」的場景,像是遊戲中的存檔功能、檔案編輯中的復原重做等。這個模式雖然靈活,但過度使用可能會對系統效能造成負擔。


對設計模式感興趣的朋友,推薦參考我在iThome鐵人賽的文章。
https://ithelp.ithome.com.tw/articles/10349194

留言
avatar-img
留言分享你的想法!
avatar-img
ShengYu的沙龍
6會員
83內容數
對於經營自媒體、部落格或社群媒體感興趣?我專注於提供實用的寫作技巧、數位行銷策略,以及個人成長建議。 每週,我會分享提升寫作技巧、優化部落格經營、有效管理社群媒體、以及投資理財的寶貴知識。追蹤我,獲得實用的工具和建議,讓你的個人品牌和財務管理更上一層樓!
ShengYu的沙龍的其他內容
2024/10/01
最近看到許多有關職場的文章,讓我感觸良多,也想分享一些想法。 當公司遇到財務問題時,裁員往往是最直接的方法。這時候無論你是公司創始元老,還是奉獻多年的資深員工,公司都只看數字。薪水高的、資深的員工,常常會是第一批被裁的對象。 你也許會想:「我對公司有那麼多貢獻,為什麼還會被裁?」但現實是
2024/10/01
最近看到許多有關職場的文章,讓我感觸良多,也想分享一些想法。 當公司遇到財務問題時,裁員往往是最直接的方法。這時候無論你是公司創始元老,還是奉獻多年的資深員工,公司都只看數字。薪水高的、資深的員工,常常會是第一批被裁的對象。 你也許會想:「我對公司有那麼多貢獻,為什麼還會被裁?」但現實是
2024/09/30
在職場上,許多人都會面臨不快樂的情境,可能是因為壓力、工作與生活不平衡、或是缺乏成就感。你是不是也有過這樣的感覺?今天我想分享我最近看到一個成功人士在職場上讓工作變得更快樂的方法與心態轉變的秘訣。 主動爭取機會,掌握主動權 在職場中,最不快樂的感覺往往來自於被動接受工作。如果你總是被丟一堆工
2024/09/30
在職場上,許多人都會面臨不快樂的情境,可能是因為壓力、工作與生活不平衡、或是缺乏成就感。你是不是也有過這樣的感覺?今天我想分享我最近看到一個成功人士在職場上讓工作變得更快樂的方法與心態轉變的秘訣。 主動爭取機會,掌握主動權 在職場中,最不快樂的感覺往往來自於被動接受工作。如果你總是被丟一堆工
2024/09/29
軟體開發中,我們經常會遇到各種令人抓狂的設計問題。有時候是趕進度的壓力讓我們妥協了設計質量;有時候是忽略了好的設計原則,結果掉進了各種反模式的坑裡。今天我們來繼續聊聊幾個常見的反模式。 寫死 Hard Code 直接將資料值或邏輯硬寫死在程式碼裡,當需求變更時,修改這些 Hard Code
2024/09/29
軟體開發中,我們經常會遇到各種令人抓狂的設計問題。有時候是趕進度的壓力讓我們妥協了設計質量;有時候是忽略了好的設計原則,結果掉進了各種反模式的坑裡。今天我們來繼續聊聊幾個常見的反模式。 寫死 Hard Code 直接將資料值或邏輯硬寫死在程式碼裡,當需求變更時,修改這些 Hard Code
看更多
你可能也想看
Thumbnail
雙11於許多人而言,不只是單純的折扣狂歡,更是行事曆裡預定的,對美好生活的憧憬。 錢錢沒有不見,它變成了快樂,跟讓臥房、辦公桌、每天早晨的咖啡香升級的樣子! 這次格編突擊辦公室,也邀請 vocus「野格團」創作者分享掀開蝦皮購物車的簾幕,「加入購物車」的瞬間,藏著哪些靈感,或是對美好生活的想像?
Thumbnail
雙11於許多人而言,不只是單純的折扣狂歡,更是行事曆裡預定的,對美好生活的憧憬。 錢錢沒有不見,它變成了快樂,跟讓臥房、辦公桌、每天早晨的咖啡香升級的樣子! 這次格編突擊辦公室,也邀請 vocus「野格團」創作者分享掀開蝦皮購物車的簾幕,「加入購物車」的瞬間,藏著哪些靈感,或是對美好生活的想像?
Thumbnail
雙11購物節準備開跑,蝦皮推出超多優惠,與你分享實際入手的收納好物,包括貨櫃收納箱、真空收納袋、可站立筆袋等,並分享如何利用蝦皮分潤計畫,一邊購物一邊賺取額外收入,讓你買得開心、賺得也開心!
Thumbnail
雙11購物節準備開跑,蝦皮推出超多優惠,與你分享實際入手的收納好物,包括貨櫃收納箱、真空收納袋、可站立筆袋等,並分享如何利用蝦皮分潤計畫,一邊購物一邊賺取額外收入,讓你買得開心、賺得也開心!
Thumbnail
分享個人在新家裝潢後,精選 5 款蝦皮上的實用家居好物,包含客製化層架、MIT 地毯、沙發邊桌、分類垃圾桶及寵物碗架,從尺寸、功能到價格都符合需求,並提供詳細開箱心得與購買建議。
Thumbnail
分享個人在新家裝潢後,精選 5 款蝦皮上的實用家居好物,包含客製化層架、MIT 地毯、沙發邊桌、分類垃圾桶及寵物碗架,從尺寸、功能到價格都符合需求,並提供詳細開箱心得與購買建議。
Thumbnail
這篇文章描述了作者對於生活中遺留的習慣、記憶和物品的反思和回憶。作者選擇以網路書寫的方式來重新梳理和分享這些記憶。從筆記的撕下到數位工具的使用,都展現了作者對於記憶整理的執著和努力。
Thumbnail
這篇文章描述了作者對於生活中遺留的習慣、記憶和物品的反思和回憶。作者選擇以網路書寫的方式來重新梳理和分享這些記憶。從筆記的撕下到數位工具的使用,都展現了作者對於記憶整理的執著和努力。
Thumbnail
囤物代表怎樣的執念和對人生的影響?傷痛又要怎樣整理才能讓人重新振作呢?
Thumbnail
囤物代表怎樣的執念和對人生的影響?傷痛又要怎樣整理才能讓人重新振作呢?
Thumbnail
作為一個有收藏欲的人,偶像的戲劇光碟、雜誌、電影票,遊戲送的小飾品、小卡,小說送的明信片、小海報等等,都會是收藏的目標,有想過要在架子上,騰出一格專門用來放週邊,但展示方式和保存情況,實在是很需要深思熟慮的一件事,所以一直都只是粗略的,用A4文件盒分裝了一下 那天又一個心血來潮,總覺得這些週邊
Thumbnail
作為一個有收藏欲的人,偶像的戲劇光碟、雜誌、電影票,遊戲送的小飾品、小卡,小說送的明信片、小海報等等,都會是收藏的目標,有想過要在架子上,騰出一格專門用來放週邊,但展示方式和保存情況,實在是很需要深思熟慮的一件事,所以一直都只是粗略的,用A4文件盒分裝了一下 那天又一個心血來潮,總覺得這些週邊
Thumbnail
逐一檢視它們,我好像看見自己多年來到底累積了什麽。
Thumbnail
逐一檢視它們,我好像看見自己多年來到底累積了什麽。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News