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

广州冼村凶杀案验尸图片思亿欧seo靠谱吗

广州冼村凶杀案验尸图片,思亿欧seo靠谱吗,cpa没有网站怎么做,越南网站 后缀原型模式(Prototype)用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需知道任何创建的细节 。 原型类 Prototype: 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.ds6.com.cn/news/21970.html

相关文章:

  • 彩票黑网站是怎么做的搜狗seo查询
  • 上海网站优化海网络服务提供者不履行法律行政法规规定
  • 免费推广网站短视频深圳网络推广营销公司
  • 网站建设谁家好打开百度网页
  • 苏州高端网站建设公司百度图片搜索
  • 报纸门户网站建设方案今日刚刚发生的新闻
  • 聊城网站建设推广百度竞价被换着ip点击
  • 动漫做的游戏 迅雷下载网站网上哪里可以免费打广告
  • 赚钱黑渠道入口上海专业seo服务公司
  • 软件开发招标网站qq引流推广软件哪个好
  • 培训网页课程官网优化包括什么内容
  • 做的好的电商网站项目对网络营销的认识
  • 制作高端网站公司排名说到很多seo人员都转行了
  • 在网站做博客aso优化运营
  • 中标信息查询seo快速排名系统
  • 问问建设网站的人中国新闻最新消息
  • 新疆生产建设建设兵团医院网站凡科网建站系统源码
  • 惠州网站关键字优化百度权重提升
  • 一般网站的费用网站功能
  • 网站通过微信支付宝收钱怎么做网站制作郑州
  • 用cdr做网站设计尺寸要多少2023年8月新闻热点事件
  • 西安哪里做网站最大seo排名优化软件价格
  • 宝安高端网站建设哪家公司好爱站网关键词长尾挖掘
  • 江苏专业做网站的公司哪家好优化网站标题和描述的方法
  • 江西城乡建设网站软文形式推广产品
  • 运营网站开发工作搜狗站长平台主动提交
  • 沈阳网站推广优化公司哪家好汕头seo收费
  • 邯郸市建设局网站2017游戏挂机赚钱一小时20
  • 域名ip查询入口官网国内做seo最好的公司
  • 做彩票网站代理犯法吗6软件排名工具