赞
踩
感谢各位同学的关注与支持,我会一直更新此专题,竭尽所能整理出更为详细的内容分享给大家,但碍于时间及精力有限,代码分享较少,后续会把所有代码示例整理到github,敬请期待。
此章节介绍建原型模式。
原型模式,是用于创建重复的对象,同时又能保证性能。
这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,以此来减少数据库调用。
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
// 版本一(三份简历:必须有姓名、可以设置年龄和性别、可以设置工作经历):简单代码实现 //Resume resume = new Resume("A"); //resume.SetAgeSex("20","男"); //resume.SetWorkExp("2000-2005", "xxx公司"); //resume.Show(); //Resume resume1 = new Resume("A"); //resume1.SetAgeSex("20", "男"); //resume1.SetWorkExp("2000-2005", "xxx公司"); //resume1.Show(); //Resume resume2 = new Resume("A"); //resume2.SetAgeSex("20", "男"); //resume2.SetWorkExp("2000-2005", "xxx公司"); //resume2.Show(); //Console.ReadKey(); // 版本二:原型模式(.Net自带ICloneable接口),全部是值类型 //V2.Resume resume = new V2.Resume("B"); //resume.SetAgeSex("20", "男"); //resume.SetWorkExp("2000-2005", "xxx公司"); //resume.Show(); //V2.Resume resume1 = (V2.Resume)resume.Clone(); //resume1.Show(); //V2.Resume resume2 = (V2.Resume)resume.Clone(); //resume2.Show(); //Console.ReadKey(); // 版本三:原型模式(.Net自带ICloneable接口),值类型+对象类型 V3.Resume resume = new V3.Resume("B"); resume.SetAgeSex("20", "男"); resume.SetWorkExp("2000-2005", "xxx公司"); resume.Show(); V3.Resume resume1 = (V3.Resume)resume.Clone(); resume.SetWorkExp("2000-2005", "xxxxx公司"); resume1.Show(); V3.Resume resume2 = (V3.Resume)resume.Clone(); resume.SetWorkExp("2000-2005", "xxxxxxxx公司"); resume2.Show(); Console.ReadKey();
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。