c#设计模式之备忘录模式
来源:互联网 发布:淘宝店铺分析插件 编辑:程序博客网 时间:2024/06/07 02:52
using System;using System.Collections.Generic;namespace Program{ //联系人 public class ContactPerson { public string Name { get; set; } public string MobileNum { get; set; } } //备忘录 public class ContactMemento { //保存发起人的内部状态 public List<ContactPerson> contactPersonBack; public ContactMemento(List<ContactPerson> persons) { contactPersonBack = persons; } } //发起人 public class MobileOwner { //发起人需要保存的内部状态 public List<ContactPerson> ContactPersons { get; set; } public MobileOwner(List<ContactPerson> persons) { ContactPersons = persons; } //创建备忘录,将要保存的联系人列表导入到备忘录中 public ContactMemento CreateMemento() { return new ContactMemento(new List<ContactPerson>(this.ContactPersons)); } //将备忘录中的数据备份导入到联系人列表中 public void RestoreMemento(ContactMemento memento) { this.ContactPersons = memento.contactPersonBack; } public void show() { Console.WriteLine("{0}个人", ContactPersons.Count); foreach (ContactPerson p in ContactPersons) { Console.WriteLine("name:{0} number:{1} ", p.Name, p.MobileNum); } } } //管理角色 public class Caretaker { public ContactMemento ContactM { get; set; } } class Program { static void Main(string[] args) { List<ContactPerson> persons = new List<ContactPerson>() { new ContactPerson(){Name="a",MobileNum="01234"}, new ContactPerson(){Name="b",MobileNum="56789"}, new ContactPerson(){Name="c",MobileNum="98765"}, }; MobileOwner mobileOwner = new MobileOwner(persons); mobileOwner.show(); //创建备忘录并保存备忘录对象 Caretaker caretaker = new Caretaker(); caretaker.ContactM = mobileOwner.CreateMemento(); //移除最后一个联系人 mobileOwner.ContactPersons.RemoveAt(2); mobileOwner.show(); //恢复到初始状态 mobileOwner.RestoreMemento(caretaker.ContactM); mobileOwner.show(); Console.ReadKey(); } }}
阅读全文
0 0
- c#版设计模式之备忘录模式
- c#设计模式之备忘录模式
- 【C#设计模式-备忘录模式】
- 设计模式之备忘录
- 设计模式之备忘录
- 设计模式之备忘录
- 设计模式之备忘录模式
- 设计模式之备忘录模式
- 设计模式之备忘录模式
- 设计模式之备忘录模式
- 设计模式之备忘录模式
- 设计模式之备忘录模式
- 设计模式之备忘录模式
- 设计模式之备忘录模式
- 设计模式之备忘录模式
- 设计模式之备忘录模式
- 设计模式之备忘录模式
- 设计模式之备忘录模式
- Java生产者消费者的五种实现方式
- 【SpringMVC】POJO做为参数
- [雅礼6-30]钟 clock
- java web初尝试,在eclipse中配置
- 初学sqlmap 实验吧wp
- c#设计模式之备忘录模式
- 剑指offer\c++
- Spark排错与优化
- nodejs个人学习笔记
- JS函数之多组图片切换
- 小程序form表单
- 带进度条的x5WebView
- spring cloud: Hystrix断路器(熔断器)
- 【SpringMVC】ModelAndView