學習日記之備忘錄模式和繼承 物件導向設計

2021-09-09 03:35:17 字數 725 閱讀 7624

備忘錄模式(memento):在不破壞封裝性的前提下。捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態。

這樣以後就可將該物件恢復到原先儲存的狀態。

(1),把要儲存的細節給封裝在 memento 中,那一天要更改儲存的細節也不用影響client了。

(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)。

設計模式之備忘錄模式

機器 public class machine public void startplay disc.setluminance 60 disc.settime 0 disc.setvolume 80 public void stopplay disc.setluminance 70 disc.set...

設計模式之備忘錄模式

定義 在不破壞封閉的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態。這樣以後就可將該物件恢復到原先儲存的狀態。備忘錄模式有三個角色 以儲存遊戲進度為例,退出遊戲前存檔,再進入遊戲就會顯示退出之前的狀態。示例 遊戲發起人類 public class game public state cr...

設計模式之 備忘錄模式

定義 在不破壞封裝性的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態。這樣就可以將該物件 恢復到原先儲存的狀態。很好理解,就像我們以前打通關遊戲一樣,打通某個關卡,就會備份一下,不然根本通不了關。備忘錄 負責儲存發起人物件的內部狀態,在需要的時候提供發起人需要的內部狀態。public c...