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

    备忘录模式:

           Memento:在不破坏封装性的前提下,捕获一个对象内部状态,并在该对象之外保存这个状态。以便将对象恢复到原先保存状态。

    Demo

           //备忘录模式

       class Program

        {

           static void Main(string[] args)

           {

               Originator o = new Originator();

               o.State = "On";

               o.Show();

                //实例化管理者,保存状态

               Caretaker c = new Caretaker();

               c.Mement0 = o.CreateMemento();

               o.State = "off";

               o.Show();

               //恢复状态

               o.SetMemento(c.Mement0);

               o.Show();

               Console.ReadKey();

           }

        }

           class Originator

        {

           private string state;//保存的属性

           public string State

           {

               get { return state; }

               set { state = value; }

           }

           public Memento CreateMemento()//创建备忘录,将数据导入实例化一个Memento对象

           {

               return (new Memento(state));

           }

           public void SetMemento(Memento memento)//恢复备忘录

           {

               state = memento.State;

           }

           public void Show()

           {

               Console.WriteLine("State="+state);

           }

    }

    //备忘录类

        class Memento

        {

            private string state;

            public Memento(string state)

            {

                this.state = state;

            }

            public string State

            {

                get { return state; }

            }

        }

    //管理者类

       class Caretaker

        {

           private Memento memento;

           public Memento Mement0//得到或设置备忘录

           {

               get { return memento; }

               set { memento = value; }

           }

        }

  • 相关阅读:
    教您搭建与布署NTP网络时钟服务器
    利用北斗卫星系统设计NTP网络时间服务器
    GPS同步时钟(北斗时间服务器)守时方法研究
    京准讲述NTP时钟服务器应用及原理
    标准化考场时钟系统(电子时钟)时间同步设备
    北斗授时产品详解与应用
    IRIG-B码对时是变电站自动化系统的基本要求
    北斗同步时钟(主时钟控制器)应用于电气化铁道远动系统
    IEEE1588PTP在数字化变电站时钟同步方面的应用
    thinkphp6学习教程与源码 tp6开源CMS系统源码研究
  • 原文地址:https://www.cnblogs.com/yaoge/p/1815244.html
Copyright © 2011-2022 走看看