1. 程式人生 > >圖解設計模式讀書筆記(十五)——Memento(備忘錄)模式

圖解設計模式讀書筆記(十五)——Memento(備忘錄)模式

使用場景:

需要儲存狀態,以便將來執行redo/undo操作來恢復狀態。多用在棋牌類遊戲,書寫編輯類應用上。

基本思想:

在保證封裝性的基礎上,將類的屬性狀態在外部儲存起來。

保證封裝性的方式起始就是控制好memento類的可見性,即對於敏感資料,不使用public修飾,一般不用修飾符修飾,使得只能在同一個包中類能夠訪問。

類關係圖:

類圖比較簡單,Originator負責生產Memento,與Memento在同一個包中,能夠訪問Memento除了private外的所有方法屬性。Caretaker通過Originator生成並持有Memento物件,以便在某個時刻恢復memento狀態。

缺點:

由於需要備份,特別是多次備份時,資源消耗嚴重。