• 备忘录模式


    备忘录模式:在不破坏封装的前提下,捕获一个对象的内部状态,并在这个对象之外的地方保存这个状态,这样以后就可将该对象恢复到原来保存的状态了。

    结构图:

    2010-01-27_192400
    Memento类:保存状态的容器
        class Memento
        {
            public string State { get; set; }
            public Memento(string state)
            {
                this.State = state;
            }
        }
    Caretaker是保存Memento类:
        class Caretaker
        {
            public Memento Memento { get; set; }
        }
    Originator类就是需要保存状态的类:
        class Originator
        {
            public string State { get; set; }
            public Memento CreateMemento()
            {
                return (new Memento(State));
            }
            public void SetMemento(Memento memento)
            {
                State = memento.State;
            }
            public void Show()
            {
                Console.WriteLine("State:" + State);
            }
        }

     主函数调用:

        class Program
        {
            static void Main(string[] args)
            {
                Originator o = new Originator();
                o.State = "On";
                o.Show();

                Caretaker c = new Caretaker();
                c.Memento = o.CreateMemento();

                o.State = "off";
                o.Show();

                o.SetMemento(c.Memento);
                o.Show();

                Console.ReadKey();
            }
        }
      
  • 相关阅读:
    判断touchmove上下的方向
    this的指向
    JS 判断浏览器是否安装Flash 兼容IE、firefox
    Array类型
    addEventListener()与removeEventListener()
    tap 点透问题
    ts 接口
    ts 类型断言
    ts学习
    vue时间戳转换(10位数)/(13位)
  • 原文地址:https://www.cnblogs.com/lmfeng/p/2618007.html
Copyright © 2020-2023  润新知