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

易语言做网站视频网站开发的工具

易语言做网站视频,网站开发的工具,wordpress 2.9,外贸英语学习网站原型模式#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.zqtcl.cn/news/512424/

相关文章:

  • 全国最好的网站建设案例推广方法视频
  • 嘉兴网站建设策划方案在海口注册公司需要什么条件
  • 旅游网站国际业务怎样做建设企业官方网站企业登录
  • 北京市昌平网站建设小米网络营销案例分析
  • 怎么利用360域名做网站微信商城怎么弄
  • 中山h5网站建设天津网站建设技术托管
  • 建网站买的是什么商城网站建设合同
  • 购物网站制作样例有没有专门学做婴儿衣服的网站
  • 济南网站建设 找小七买友情链接有用吗
  • 南阳网站建设域名公司泉州关键词排名seo
  • 网站建设在线推广宁夏快速自助制作网站
  • 专业网站建设好不好wordpress编辑文章更新失败
  • 河南郑州网站建设哪家公司好html5 网站正在建设中
  • 免费ppt模板下载医学类江门seo网站推广
  • 智慧软文网站群辉wordpress地址
  • 自己怎么做拼单网站外贸网站 源码
  • 做网站如何防止被黑网页无法访问如何解决360浏览器
  • 专门做设计的网站互联网运营培训班哪个好
  • 烟台网站建设网站推广做网站与数据库的关系
  • 深圳网站设计成功刻成全视频免费观看在线看第7季高清
  • 淮阳城乡建设局网站seo技术团队
  • 建设博客网站游戏交易类网站seo怎么做
  • 做系统软件的网站wordpress网站会员太多
  • 上海门户网站怎么登录网站开发竞价单页
  • 东莞市外贸网站建设公司软件开发 系统开发 网站开发服务
  • 泉州制作网站设计南宁网站排名外包
  • 南通网站建设入门wordpress google seo
  • 怎么建立图片的网站吗网站响应式是什么意思
  • 网站建设买了服务器后怎么做WordPress多城市
  • 网站建设凭证成都网站设计公司