首页 > 代码库 > 备忘录模式
备忘录模式
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 }
备忘录模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。