首页 > 学院 > 开发设计 > 正文

用最简单的例子理解备忘录模式(Memento Pattern)

2019-11-17 02:54:32
字体:
来源:转载
供稿:网友

用最简单的例子理解备忘录模式(Memento Pattern)

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表