java8 對行為型模式下備忘錄模式

2021-08-21 21:57:32 字數 987 閱讀 2784

備忘錄模式(memento pattern)儲存乙個物件的某個狀態,以便在適當的時候恢復物件。備忘錄模式屬於行為型模式。

何時使用:很多時候我們總是需要記錄乙個物件的內部狀態,這樣做的目的就是為了允許使用者取消不確定或者錯誤的操作,能夠恢復到他原先的狀態,使得他有"後悔藥"可吃。

如何解決:通過乙個備忘錄類專門儲存物件狀態。

關鍵**:客戶不與備忘錄類耦合,與備忘錄管理類耦合。

應用例項: 1、後悔藥。 2、打遊戲時的存檔。 3、windows 裡的 ctri + z。 4、ie 中的後退。 4、資料庫的事務管理。

注意事項: 1、為了符合迪公尺特原則,還要增加乙個管理備忘錄的類。 2、為了節約記憶體,可使用原型模式+備忘錄模式。

備忘錄模式所涉及的角色有三個:備忘錄(memento)角色、發起人(originator)角色、負責人(caretaker)角色。

備忘錄(memento)角色 

(1)將發起人(originator)物件的內戰狀態儲存起來。備忘錄可以根據發起人物件的判斷來決定儲存多少發起人(originator)物件的內部狀態。

(2)備忘錄可以保護其內容不被發起人(originator)物件之外的任何物件所讀取。、

備忘錄有兩個等效的介面:

窄介面:負責人(caretaker)物件(和其他除發起人物件之外的任何物件)看到的是備忘錄的窄介面(narrow inte***ce),這個窄介面只允許它把備忘錄物件傳給其他的物件。

寬介面:與負責人物件看到的窄介面相反的是,發起人物件可以看到乙個寬介面(wide inte***ce),這個寬介面允許它讀取所有的資料,以便根據這些資料恢復這個發起人物件的內部狀態。

發起人(originator)角色 

(1)建立乙個含有當前的內部狀態的備忘錄物件。

(2)使用備忘錄物件儲存其內部狀態。

負責人(caretaker)角色

(1)負責儲存備忘錄物件。

(2)不檢查備忘錄物件的內容。

行為型模式 備忘錄模式

備忘錄模式 在不破壞原封裝性的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態。這樣,以後就可以將該物件恢復到原先儲存的狀態。備忘錄模式角色 發起人 originator 角色 該角色記錄當前時刻的內部狀態,負責定義哪些屬於備份範圍的狀態,負責建立和恢復備忘錄資料 備忘錄 memento ...

行為型模式 備忘錄模式

核心 就是儲存某個物件內部狀態的拷貝,這樣以後就可以將該物件恢復到原先的狀態。結構1 源髮器類 originator。2 備忘錄類 memento。3 負責人類 care take。開發中常見的應用場景 1 棋類遊戲中的,悔棋。2 普通軟體中的,撤銷操作。3 資料庫軟體中的,事務管理中的,回滾操作。...

java8 對行為型模式下命令模式

命令模式 command pattern 是一種資料驅動的設計模式,它屬於行為型模式。請求以命令的形式包裹在物件中,並傳給呼叫物件。呼叫物件尋找可以處理該命令的合適的物件,並把該命令傳給相應的物件,該物件執行命令。concretecommand 具體命令類 具體命令類是抽象命令類的子類,實現了在抽象...