先看下下面程式:
public
class lol
public
void
quit()
//建立備忘錄
public memoto creatememoto()
}//定義備忘錄角色,儲存內部狀態
public
class
memoto()
}//定義備忘錄的操作者
public
class caretaker
//實現存檔
public
void
archive(memoto memoto)
}//客戶端使用
public
class client
}
我的理解是:
在使用備忘錄模式的那個類a(物件)中建立乙個方法,這個方法依託備忘錄的類b提供的要儲存的引數資料進行資料賦值,將類a需要儲存的資料引數儲存到類b中,然後在類a中提供乙個restore方法,這個方法引數是類b的物件,然後需要乙個備忘錄的管理類c,這個類提供兩個方法:得到備忘錄物件和儲存備忘錄物件。當你需要在客戶端實現備忘錄操作的時候,首先new出a類,呼叫a類的creatememoto方法將引數賦值給類b,然後new出類c,呼叫c的archive方法進行備忘錄物件的儲存,當a類退出後再次構建遊戲物件,呼叫a類物件的restore物件將caretaker.getmemoto物件傳入即可。
有一句總結的很好:
備忘錄模式是在不破壞封裝的條件下,通過備忘錄物件儲存另乙個物件內部狀態的快照,在將來合適的時候把這個物件還原到儲存起來的狀態.
設計模式閱讀備忘筆記 裝飾模式
設計模式閱讀備忘筆記 裝飾模式 策略模式 strategy 動態的給乙個物件新增一些額外的職責,就是增加功能來說,裝飾模式比生成子類更加靈活。理解 將所需的功能按正確的順序串聯起來進行控制,每個裝飾物件的實現就和如何使用這個物件分開了,每個裝飾物件只關心自己的功能,不需要關心如何新增在物件鏈中。例子...
設計模式閱讀備忘筆記 組合模式
設計模式閱讀備忘筆記 組合模式 組合模式 將物件組合合成樹形結構以標識 部分 整體 的層次結構,組合模式使得使用者對單個物件和組合物件的使用具有一致性。最近在研究行為樹,突然想起來組合模式,就此記錄回顧一下。例子如下 抽象節點 public abstract class acomposite pub...
《軟體需求模式》閱讀筆記之三
書中介紹了37種需求模式,每種模式都從基本細節,適用性,討論,內容,模板,例項,額外需求,開發考慮,測試考慮等幾個方面介紹的。每一種模式都其中的特點和適用性,在實際專案開發中,我們應該選擇適合的使用。資訊領域需求模式有 資料型別需求模式 資料結構需求模式 識別符號需求模式 計算公式需求模式 資料壽命...