首页 / 设计模式 / 大话设计模式之原型模式
大话设计模式之原型模式
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了大话设计模式之原型模式,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2124字,纯文字阅读大概需要4分钟。
内容图文
概念:原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需知道任何创建的细节。
1 using System; 2 using System.Collections.Generic; 3 using System.Text; 4 using System.Data; 5 6 namespace 原型模式 7 { 8 class Program 9 { 10 static void Main(string[] args) 11 { 12 Resume a = new Resume("大鸟"); 13 a.SetPersonalInfo("男", "29"); 14 a.SetWorkExperience("1998-2000", "XX公司"); 15 16 Resume b = (Resume)a.Clone(); 17 b.SetWorkExperience("1998-2006", "YY企业"); 18 19 Resume c = (Resume)a.Clone(); 20 c.SetWorkExperience("1998-2003", "ZZ企业"); 21 22 a.Display(); 23 b.Display(); 24 c.Display(); 25 26 Console.Read(); 27 28 } 29 } 30 31//简历 32class Resume : ICloneable 33 { 34privatestring name; 35privatestring sex; 36privatestring age; 37 38private WorkExperience work; 39 40public Resume(string name) 41 { 42this.name = name; 43 work = new WorkExperience(); 44 } 45 46private Resume(WorkExperience work) 47 { 48this.work = (WorkExperience)work.Clone(); 49 } 50 51//设置个人信息 52publicvoid SetPersonalInfo(string sex, string age) 53 { 54this.sex = sex; 55this.age = age; 56 } 57//设置工作经历 58publicvoid SetWorkExperience(string workDate, string company) 59 { 60 work.WorkDate = workDate; 61 work.Company = company; 62 } 63 64//显示 65publicvoid Display() 66 { 67 Console.WriteLine("{0} {1} {2}", name, sex, age); 68 Console.WriteLine("工作经历:{0} {1}", work.WorkDate, work.Company); 69 } 70 71public Object Clone() 72 { 73 Resume obj = new Resume(this.work); 74 75 obj.name = this.name; 76 obj.sex = this.sex; 77 obj.age = this.age; 78 79 80return obj; 81 } 82 83 } 84 85//工作经历 86class WorkExperience : ICloneable 87 { 88privatestring workDate; 89publicstring WorkDate 90 { 91get { return workDate; } 92set { workDate = value; } 93 } 94privatestring company; 95publicstring Company 96 { 97get { return company; } 98set { company = value; } 99 } 100101public Object Clone() 102 { 103return (Object)this.MemberwiseClone(); 104 } 105 } 106107 }
注意:其中的Memberwise()方法是这样的,如果字段是值类型的,则对该字段执行逐位复制,如果字段是引用类型,则复制引用但不复制引用的对象,因此,原始对象及其复本引用同一对象。
原型模式在.Net中的应用:.Net在System命名空间中提供了ICloneable接口,其中就是唯一的一个方法Clone(),这样你就只需要实现这个接口就可以完成原型模式了。
原文:http://www.cnblogs.com/wpflovesj/p/4958132.html
内容总结
以上是互联网集市为您收集整理的大话设计模式之原型模式全部内容,希望文章能够帮你解决大话设计模式之原型模式所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。