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();
            }
        }
      
  • 相关阅读:
    Scala (三)集合
    为什么成为一名程序员?
    Hadoop——Yarn
    Redis(一)NoSQL简介、Redis安装 、数据类型、配置文件、发布订阅
    Java并发编程——共享模型之内存( JMM、原子性、可见性、有序性、volatile原理)
    KafkaAPI实战案例
    分布式技术原理笔记(二)分布式体系结构
    Flume 进阶
    Kafka框架基础
    Scala (二)面向对象
  • 原文地址:https://www.cnblogs.com/lmfeng/p/2618007.html
Copyright © 2011-2022 走看看