設計模式 行為型設計模式 8 備忘錄模式(php)

2021-10-10 09:40:49 字數 537 閱讀 7450

行為型設計模式

備忘錄模式

備忘錄模式(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 是它的友元,...