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

    1、理解:备忘录模式就是在发起人内部有一个创建备忘录类的方法,这个备忘录类初始化时保存了发起人的状态,如果发起人要恢复状态就调用备忘录的状态属性,也可以通过一个管理者类来管理这个备忘录。

    2、定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。

    3、代码:

    1)发起人类

     1  //发起人
     2     class Originator
     3     {
     4         private string state;
     5         public string State { get; set; }
     6         //创建备忘录
     7         public Memento CreateMemento()
     8         {
     9             return new Memento(state);
    10         }
    11         //恢复状态
    12         public void SetMemento(Memento memento)
    13         {
    14             state = memento.State;
    15         }
    16         //显示状态
    17         public void Show() 
    18         { 
    19             Console.WriteLine(state);
    20         }
    21 
    22     }

    2)备忘录

     1 //备忘录
     2     class Memento
     3     {
     4         private string state;
     5         public string State { get; }
     6         public Memento(string state) 
     7         {
     8             this.state = state;
     9         }
    10         
    11     }

    3)管理者

    1 //管理者类
    2     class Caretaker
    3     {
    4         private Memento memento;
    5         public Memento Memento { get; set; }
    6     }

    4)客户端

     1 static void Main(string[] args)
     2         {
     3             Originator o = new Originator();
     4             o.State = "On";
     5             o.Show();
     6 
     7             Caretaker c = new Caretaker();
     8             c.Memento = o.CreateMemento();
     9 
    10             o.State = "Off";
    11             o.Show();
    12             o.SetMemento(c.Memento);
    13             o.Show();
    14             Console.Read();
    15         }

      

  • 相关阅读:
    报表图片不显示的问题(一)
    数据库时区问题
    变色
    给div加滚动条,当内容超过它的范围的时候
    Apple Style Effect
    easyui发生重叠现象的原因
    mysql 获取字符串长度
    纯css的带下拉菜单的导航条
    jQuery验证控件jquery.validate.js使用说明+中文API
    background-position 用法详细介绍
  • 原文地址:https://www.cnblogs.com/zhengwei-cq/p/6766912.html
Copyright © 2011-2022 走看看