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();
            }
        }
      
  • 相关阅读:
    Java使用POI操作Excel合并单元格
    LinkedList查询分析
    Redis面试题及答案
    分布式架构基础:Java RMI详解
    什么是线程
    ehcache、memcache、redis三大缓存比较
    ehcache入门基础示例
    js 异步提交文件
    .net core Model对象转换为uri网址参数形式
    net core2.1 在过滤器中获取post的body参数
  • 原文地址:https://www.cnblogs.com/lmfeng/p/2618007.html
Copyright © 2011-2022 走看看