iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

0
Software Development

你終究都要學設計模式的,那為什麼不一開始就學呢?系列 第 41

Day41. 備忘錄模式

本文同步更新於blog

Memento Pattern

透過對象外的存檔,讓對象能夠載入之前的狀態。


備忘錄模式會將類別分成三類:
分別是原始類別 (Originator)備忘錄類別 (Memento)管理類別 (Caretaker)

原始類別為具有內部狀態的標的
備忘錄類別為儲存的原始類別,擁有當時的內部狀態
管理類別負責備忘錄類別的存儲,並留下歷史紀錄


優點
可以在不破壞封裝性的情況下,保存物件的狀態。
可以藉由管理類別,輕易地恢復先前原始類別的狀態。

缺點
當備忘錄類別過多時,會佔用大量的內存。


與其他模式的比較:

[命令模式]:
命令模式的層級為一道道的不同的命令
備忘錄模式的層級則為原始類別的狀態

[原型模式]:
原型模式相當類似備忘錄模式,但缺少了存儲的管理類別。


ʕ •ᴥ•ʔ:玩過RPG遊戲就會理解的模式。


上一篇
Day40. 範例:假期規劃 (建造者模式)
下一篇
Day42. 範例:仿真Git (備忘錄模式)
系列文
你終究都要學設計模式的,那為什麼不一開始就學呢?44

尚未有邦友留言

立即登入留言