備忘錄模式(memento)
在不破壞封裝性的前提下,捕獲乙個物件的內部狀態,並在該物件之外保持這個狀態。這樣以後就可以將該物件恢復到原先儲存的狀態。
/** * 原始資料:
* */
public class originator
public void setstate(string state)
//用於生成需要儲存的備份
public memento creatememento()
//恢復狀態,從備份中讀取
public void setmemento(memento memento)
public void show()
}
/**
* 備忘錄類:需要儲存originator中需要備份的所有屬性
* 此僅以state為例
*/public class memento
public void setstate(string state)
public memento(string state)
}
/**
* 儲存備忘錄的類
*/public class caretaker
public void setmemento(memento memento)
}
/**
* 呼叫客戶端
*/public class client
}
設計模式之備忘錄模式
機器 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...