当前位置: 首页 > news >正文

高大上网站欣赏中国计算机网络公司排名

高大上网站欣赏,中国计算机网络公司排名,2023还能上的网站,国内装饰行业网站制作原型模式#xff08;Prototype#xff09;用原型实例指定创建对象的种类#xff0c;并且通过拷贝这些原型创建新的对象。原型模式其实就是从一个对象再创建另外一个可定制的对象#xff0c;而且不需知道任何创建的细节 。 原型类 Prototype#xff1a; abstract class P… 原型模式Prototype用原型实例指定创建对象的种类并且通过拷贝这些原型创建新的对象。原型模式其实就是从一个对象再创建另外一个可定制的对象而且不需知道任何创建的细节 。 原型类 Prototype abstract class Prototype {private string id;public Prototype(string id){this.id id;}public string Id{get { return id; }}//抽象类关键有这样一个Clone方法public abstract Prototype Clone(); } ConcretePrototypel类具体原型 class ConcretePrototypel : Prototype {public ConcretePrototypel(string id) : base(id) { }public override Prototype Clone(){//创建一个新对象然后将当前对象非静态字段复制到该新对象//如果字段是值类型则逐位复制字段引用类型只复制引用地址return (Prototype)this.MemberwiseClone();} } 客户端 class Main : MonoBehaviour {private void Start(){ConcretePrototypel pl new ConcretePrototypel(I);ConcretePrototypel cl (ConcretePrototypel)pl.Clone();Debug.Log(clone cl.Id);} } 由于克隆实在太常用.Net在System命名空间提供了IClone接口唯一的Clone()方法只要实现这个接口就可以完成原型模式了。 简历类 class Resume : ICloneable {private string name;private string sex;private string age;private string timearea;private string company;public Resume(string name){this.name name;}//设置个人信息public void SetPersonalInfo(string sex,string age){this.sex sex;this.age age;}//设置工作经历public void SetWorkExperrience(string timeArea,string company){this.timearea timeArea;this.company company;}//显示public void Display(){//实现接口方法克隆对象Debug.Log(name sex age);Debug.Log(timearea company);}public object Clone(){return (object)this.MemberwiseClone();} } 客户端 class Main : MonoBehaviour {private void Start(){Resume a new Resume(DJ);a.SetPersonalInfo(男, 22);a.SetWorkExperrience(1995-2022, DJDJ);//调用克隆方法就可以实现新简历并且可以修改新简历细节Resume b (Resume)a.Clone();b.SetPersonalInfo(nv, 20);Resume c (Resume)a.Clone();c.SetWorkExperrience(1999-2222, JJJJ);a.Display();b.Display(); c.Display();} } 输出结果 现实设计当中一般会再有一个“工作经历”类当中有“时间区间”和“公司名称”等属性“简历”类直接调用。 class Resume : ICloneable {private string name;private string sex;private string age;private WorkExperience work;///引用“工作经历”对象public Resume(string name){this.name name;work new WorkExperience();//简历实例化同时实例化工作经历}public void SetPersonalInfo(string sex,string age){this.sex sex;this.age age;}public void SetWorkExperrience(string workDate,string company){work.WorkDate workDate;//调用方法给对象赋值work.Company company;}public void Display(){Debug.Log(name sex age);Debug.Log(work.WorkDate work.Company);//显示工作经历属性值}public object Clone(){return (object)this.MemberwiseClone();} } class WorkExperience {private string workDate;public string WorkDate{get { return workDate; }set { workDate value; }}private string company;public string Company{get { return company; }set { company value; }} } 使用之前的客户端逻辑运行后结果 对于引用类型克隆后没有实现真正的克隆而是只克隆了引用地址这叫做“浅复制”被复制对象的所有变量都含有与原来的对象相同的值;而所有的对其他对象的引用都仍然指向原来的对象。 深复制把引用对象的变量指向复制过的新对象而不是原有的被引用的对象。 深复制流程 首先修改WorkExperience类增加克隆方法 class WorkExperience {private string workDate;public string WorkDate{get { return workDate; }set { workDate value; }}private string company;public string Company{get { return company; }set { company value; }}public object Clone(){//工作经历类也实现克隆方法return (object)MemberwiseClone();} } 然后修改简历类新增构造函数方便克隆工作经历类再修改简历类的克隆方法 class Resume : ICloneable {private string name;private string sex;private string age;private WorkExperience work;public Resume(string name){this.name name;work new WorkExperience();}//提供Clone方法调用的私有构造函数以便克隆工作经历数据public Resume(WorkExperience work){this.work (WorkExperience)work.Clone();}public void SetPersonalInfo(string sex,string age){this.sex sex;this.age age;}public void SetWorkExperrience(string workDate,string company){work.WorkDate workDate;work.Company company;}public void Display(){Debug.Log(name sex age);Debug.Log(work.WorkDate work.Company);}//调用私有构造方法让工作经历克隆然后再给新对象其他字段赋值//最终返回一个深复制的简历对象public object Clone(){Resume obj new Resume(this.work);obj.name this.name;obj.sex this.sex; obj.age this.age;return obj;} } 还是使用之前的客户端逻辑结果如下。
http://www.hkea.cn/news/14304710/

相关文章:

  • wordpress外链404东莞网络推广优化
  • 建网站科技公司最好的flash网站
  • 网站建设合同 程序深圳建设网站制作
  • 网站宣传与推广的方法网站建设服务费合同模板
  • 安陆市网站wordpress主题免刷新
  • 县门户网站建设方案门户网站举例
  • 成都网站建设方案服务成都市微信网站建设
  • seo网站提交网页传奇手游排行榜前十名
  • 做仓单的网站网站文本编辑器
  • 高端设计网站建设torrent种子搜索引擎
  • 新乡网站建设哪家正规怎么建设网站商城
  • 做网站租用那个服务器好wordpress多级折叠
  • 有什么推广网站wordpress 添加栏目
  • 找做金融的网站有哪些方面优秀网名
  • 网站开发选题申请理由国外中文网站排行
  • 天河做网站注册网站的免费网址com
  • 网站建设的提升网站建设的规划方案
  • 平台网站建设协议网络营销运营外包
  • 网站建设行业2017长春网站制作
  • 网站运营代理网站建设方案浩森宇特
  • 网上书城网站开发的结论和不足深圳市住房和建设局投诉电话
  • 天津网站建设网页设计公司天津企业建站系统
  • 驻马店做网站的公司现在做外贸前景如何
  • 国外网站网址建c2c网站费用
  • 河南炒股配资网站开发陕西网站建设价格
  • 中国建设银行网站是什么网站的footer怎么做
  • 南昌做网站的公司哪里好土巴兔装修平台电话
  • ic商城网站建设设计说明英文翻译
  • 网站建设在哪里找客户做平台好还是做网站好
  • 做的网站有广告哪个网站上做ppt比较好看的