简单来说,备忘录模式就是支持回退操作。假设让一个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 = "";}}}
新闻热点
疑难解答