學習日記之備忘錄模式和繼承、面向對象設計

備忘錄模式(Memento):在不破壞封裝性的前提下,捕獲一個對象的內部狀態,並在該對象之外保存這個狀態。這樣以後就可將該對象恢復到原先保存的狀態。

(1),把要保存的細節給封裝在 Memento 中,那一天要更改保存的細節也不用影響客戶端了。

(2),Memento 模式比較適用於功能比較複雜的,但需要維護或記錄屬性歷史的類,需要保存的屬性只是衆多屬性中的一小部分時,Originator 可以根據保存的 Memento 信息還原到前一狀態。

(3),如果在某個系統中使用命令模式時,需要實現命令的撤銷功能,那麼命令模式可以使用備忘錄模式存儲可撤銷操作的狀態。

(4),當角色的狀態改變的時候,有可能這個狀態無效,這時候就可以使用暫時存儲起來的備忘錄將狀態復原。


Effective C++:


1:確定你的 public 繼承塑模出 is-a 關係

(1),”public 繼承“意味 is-a 。適用於 base classes 身上的每一件事情一定也適用於 derived classes 身上,因爲每一個 derived class 對象也都是一個 base class 對象。


2:避免遮掩繼承而來的名稱

(1),derived classes 內的名稱會遮掩 base classes 內的名稱。在 public 繼承下從來沒有人希望如此。

(2), 爲了讓遮掩的名稱再見天日,可使用 using 聲明式或轉交函數(forwarding functions)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章