行為型設計模式
備忘錄模式
備忘錄模式(memento pattern)屬於類的行為模式,它是指儲存乙個物件的狀態,以便在適當的時機恢復。
1、備忘錄角色
儲存備忘原角色的狀態。根據備忘原設定相應的狀態。一般情況下,為了保護備忘錄中的資料不被修改,不建議為成員變數設定setter方法,而是用構造方法傳參替代。
2、備忘錄原角色
需要被儲存狀態,以便在恰當的實際恢復狀態的物件
3、備忘錄管理者角色
負責儲存備忘錄。不能對備忘錄的內容進行操作或檢查
1、需要儲存/恢復資料的相關狀態場景
2、需要提供乙個可回滾的操作場景
1、為使用者提供了一種可以恢復狀態的機制,可以使使用者比較方便的回滾到某個歷史狀態
2、實現了狀態資訊的封裝,客戶端不需要關心狀態儲存的細節
1、如果類的成員過多,將會占用較大的資源,而且每一次儲存都會消耗一定的記憶體
行為型設計模式 備忘錄模式
在我們平時的開發工作中,很多場景需要我們備份和恢復,比如資料庫binlog日誌備份 mvcc多版本併發控制 瀏覽器的回退 chrome奔潰後重新開啟恢復之前的頁面。在gof 設計模式 定義如下 captures and externalizes an object s internal state ...
行為型設計模式 備忘錄模式詳解
備忘錄模式 memento pattern 在不破壞封裝性的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態。這樣就可以將該物件恢復到原先儲存的狀態 originator 發起者 記錄當前的狀態,負責建立和恢復備忘錄 memento 備忘錄 負責儲存發起者的狀態,在需要的時候提供發起人需要...
設計模式 行為 備忘錄
pragma once ifndef memento h define memento h include typedef std string state class memento class originator 把memento 的介面函式都設定為私有的,而originator 是它的友元,...