17 設計模式之備忘錄模式

2021-10-09 14:51:22 字數 480 閱讀 2115

模式定義:

在不破壞封裝性的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態。這樣以後就可以將該物件恢復到原先儲存的狀態。

使用動機:

在軟體構建過程中,某些物件的狀態在轉換過程中,可能由於某種需要,要求程式能夠回溯到物件之前處於某個點時的狀態。如果使用一些公用介面來讓其它物件得到物件的狀態,便會暴露物件的細節實現。

class memento

memento(const string &state) : m_state(state)

string getstate() const

void setstate(const string &state)

};class originator

memento creatememento()

void setmemento(const memento &memento)

};

設計模式 17 備忘錄模式

狀態變化 類模式 在元件構建過程中,當某些物件的狀態經常變化時,此時我們需要既對這些物件狀態的變化進行管理又維持高層次模組的穩定性,即可以通過 狀態變化 類的模式來進行解決。備忘錄模式 memento 簡介 在不破壞封裝性的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態。這樣以後就可以將...

設計模式之備忘錄模式

機器 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...