首页 > 其他 > 详细

备忘录模式

时间:2017-04-26 09:47:47      阅读:233      评论:0      收藏:0      [点我收藏+]

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         }

 

  

备忘录模式

原文:http://www.cnblogs.com/zhengwei-cq/p/6766912.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!