簡單來說,備忘錄模式就是支持回退操作。假設讓一個Notepad支持回退操作,如何實現呢?
首先需要一個備忘錄類。
public class Memento{PRivate string _msg;public Memento(string msg){_msg = msg;}public string GetText(){return _msg;}}
以上,○ 構造函數在Nodepad每次記錄信息的時候調用,Nodepad所記錄的信息最終通過該構造函數賦值給了_msg字段。○ GetText方法在Nodepad執行回退操作的時候調用
接下來就是Nodepad類。
public class Notepad{private string _msg;public Memento SetMsg(string msg){Memento m = new Memento(msg);_msg = msg;return m;}public string GetMsg(){return _msg;}public void Undo(Memento previousState){if (previousState != null){_msg = previousState.GetText();}else{_msg = "";}}}
新聞熱點
疑難解答