zoukankan      html  css  js  c++  java
  • 备忘录模式

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

    结构图:

    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();
            }
        }
      
  • 相关阅读:
    了解大数据的特点、来源与数据呈现方式
    作业四 简单四则运算
    阅读《构建之法》1-5章有感
    分布式版本控制系统Git的安装与使用
    第一次作业-准备
    dubbo相关
    SSL相关
    关于serialize和serializearray在JS和JQuery的区别
    Log4j 的日志级别
    关于CSS中display
  • 原文地址:https://www.cnblogs.com/lmfeng/p/2618007.html
Copyright © 2011-2022 走看看