网站制作哪家最好广元市网站建设

pingmian/2025/10/9 8:58:28/文章来源:
网站制作哪家最好,广元市网站建设,龙岗网站建设哪家技术好,ps网页设计实验报告1#xff0e;概述 意图#xff1a;我们将已经存在的对象作为原型#xff0c;用户可以通过复制这些原型创建新的对象。 使用场合#xff1a;当一个系统应该独立于产品的创建、构造和表示时#xff0c;可以使用原型模式。在原型模式中#xff0c;产品的创建和初始化…1概述     意图我们将已经存在的对象作为原型用户可以通过复制这些原型创建新的对象。     使用场合当一个系统应该独立于产品的创建、构造和表示时可以使用原型模式。在原型模式中产品的创建和初始化再类的Clone方法中完成。在使用是我们可以用一些列原型对象来代替生成相应对象的工厂对象并且可以使拷贝、粘贴等操作独立于需要复制的对象。     结构     原型模式Prototype用原型实例指定创建对象的种类并且通过拷贝这些原型创建新的对象。原型模式说白了就是从一个对象再创建另外一个可定制的对象而且不需要直到任何创建的细节。          原型模式基本代码    原型类Codepublic abstract class Prototype    {        private string id;        // Constructor         public Prototype(string id)        {            this.id  id;        }        // Property         public string Id        {            get { return id; }        }        public abstract Prototype Clone();    }     具体原型类 Codepublic class ConcretePrototype1 : Prototype    {        // Constructor         public ConcretePrototype1(string id)            : base(id)        {        }        public override Prototype Clone()        {            // Shallow copy             return (Prototype)this.MemberwiseClone();        }    }    public class ConcretePrototype2 : Prototype    {        // Constructor         public ConcretePrototype2(string id)            : base(id)        {        }        public override Prototype Clone()        {            // Shallow copy             return (Prototype)this.MemberwiseClone();        }    }     客户端Code            ConcretePrototype1 p1  new ConcretePrototype1(I);            ConcretePrototype1 c1  (ConcretePrototype1)p1.Clone();            Console.WriteLine(Cloned: {0}, c1.Id);            ConcretePrototype2 p2  new ConcretePrototype2(II);            ConcretePrototype2 c2  (ConcretePrototype2)p2.Clone();            Console.WriteLine(Cloned: {0}, c2.Id);     2 实例     对于.NET而言原型模式抽象类Prototype是用不着的在.NET中System命名空间中提供了ICloneable接口其中就是唯一的一个方法Clone(),这样我们只需要实现这个接口就可以完成原型模式了。     下面看大话设计模式中的简历的原型实现代码结构图     简历类 Codepublic 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 SetWorkExperience(string timeArea, string company)        {            this.timeArea  timeArea;            this.company  company;        }        //显示        public void Display()        {            Console.WriteLine({0} {1} {2}, name, sex, age);            Console.WriteLine(工作经历{0} {1}, timeArea, company);        }        public Object Clone()        {            return (Object)this.MemberwiseClone();        }}     客户端调用 Codestatic void Main(string[] args){    Resume a  new Resume(大鸟);    a.SetPersonalInfo(男, 29);    a.SetWorkExperience(1998-2000, XX公司);    Resume b  (Resume)a.Clone();    b.SetWorkExperience(1998-2006, YY企业);    Resume c  (Resume)a.Clone();    c.SetPersonalInfo(男, 24);    a.Display();    b.Display();    c.Display();    Console.Read();}     结果显示    大鸟男 29    工作经历 1998-2000 XX公司    大鸟 29    工作经历 1998-2006 YY公司    大鸟男 24    工作经历 1998-2000 XX公司     一般在初始化的信息不发生变化的情况下克隆是最好的方法。这既隐藏了对象的创建细节又对性能是大大的提高。     下面我们来看深克隆和浅克隆:    在上面的简历类中数据都是string型的而string是一种拥有值类型特点的特殊引用类型MemberwiseClone()方法对于值类型的字段执行逐位复制对于引用类型则只复制引用的对象因此原对象及其副本引用同一个对象。我们看下面的引用类型的简历克隆的代码实现     代码结构图     详细代码     工作经历类Code//工作经历    public 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; }        }    }     简历类Code//简历    public 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 SetWorkExperience(string workDate, string company)        {            work.WorkDate  workDate;            work.Company  company;        }        //显示        public void Display()        {            Console.WriteLine({0} {1} {2}, name, sex, age);            Console.WriteLine(工作经历{0} {1}, work.WorkDate, work.Company);        }        public Object Clone()        {            return (Object)this.MemberwiseClone();        }    }     客户端      static void Main(string[] args)        {            Resume a  new Resume(大鸟);            a.SetPersonalInfo(男, 29);            a.SetWorkExperience(1998-2000, XX公司);            Resume b  (Resume)a.Clone();            b.SetWorkExperience(1998-2006, YY企业);            Resume c  (Resume)a.Clone();            c.SetPersonalInfo(男, 24);            c.SetWorkExperience(1998-2003, ZZ企业);            a.Display();            b.Display();            c.Display();            Console.Read();        }      下面我们看运行结果     大鸟男 29    工作经历 1998-2003 ZZ企业     大鸟 29       工作经历 1998-2003 ZZ企业     大鸟男 24       工作经历 1998-2003 ZZ企业    由于MemberwiseClone()方法是浅表复制克隆对于值类型克隆没有问题对于引用类型对象只复制了引用对引用的对象还是指向了原来的对象所以就会出现我给a、b、c三个引用设置‘工作经历’但却同时看到三个引用都是最后一次设置因为三个引用都指向了同一个对象。     “浅复制”被复制对象的所有变量都含有与原来的对象相同的值而所有的对其他对象的引用都仍然指向原来的对象。     “深复制”深复制把引用对象的变量指向复制过的对象而不是原有的被引用的对象。     下面来看深复制的实现      代码结构图     实现代码     工作经验类    //工作经历    public class WorkExperience : ICloneable    {        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)this.MemberwiseClone();        }    }     简历类 Code //简历    public 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();        }        private Resume(WorkExperience work)        {            this.work  (WorkExperience)work.Clone();        }        //设置个人信息        public void SetPersonalInfo(string sex, string age)        {            this.sex  sex;            this.age  age;        }        //设置工作经历        public void SetWorkExperience(string workDate, string company)        {            work.WorkDate  workDate;            work.Company  company;        }        //显示        public void Display()        {            Console.WriteLine({0} {1} {2}, name, sex, age);            Console.WriteLine(工作经历{0} {1}, 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;        }    }     客户端代码与上面相同执行结果     大鸟男 29     工作经历 1998-2000 XX公司    大鸟 29     工作经历 1998-2006 YY企业     大鸟男 24     工作经历 1998-2003 ZZ企业    3 总结     优缺点     使用原型模式有以下优点     1。在运行时增加或删除产品只要通过客户端注册原型实例即可将新产品类型增加到系统中例如组态软件中工具箱中的每个工具可以对应一个注册的原型对象可以通过增加原型对象扩展工具箱。     2。很容易的创建复杂的对象在图像编辑和组态等软件中经常需要创建复杂的图元这些图元是由简单的图元组成的采用原型模式可以很容易的将复杂图元作为一般图元来使用是软件的工具箱具有扩展功能。     3。减少工厂的层次由于在.NET中可以使用反射工厂因此这个优势并不明显。     使用原型模式的缺点是在有些情况下克隆功能不容易实现特别是在遇到对象的循环引用时。     在.NET中的很多类支持原型模式例如我们希望获得一个与现有数据集DataSet结构相同的数据集既可以采用克隆的方法。注意DataSet有Clone()和Copy()两个方法Clone()方法用来复制DataSet的结构但不复制DataSet的数据实现了原型模式的浅复制Copy()方法不但复制结构也复制数据实现了原型模式的深复制。 转载于:https://www.cnblogs.com/peida/archive/2008/06/26/1230129.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/90411.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

服装网站设计策划网站建设首页步骤

随着大数据的发展,计算机芯片算力的提升,人工智能近两年迎来了新一轮的爆发。而人工智能实现超级算力的核心就是AI芯片。AI芯片也被称为人工智能加速器,即专门用于处理人工智能应用中的大量计算任务的模块。2020年我国人工智能芯片市场规模约…

横琴建设局网站做海岛旅游类网站的背景及意义

本文是自己的学习笔记,主要参考以下资料 - 马士兵教育 1、缓存概念2、二级缓存Encache集成2.1、导入依赖2.2、 1、缓存概念 缓存是针对一些大量的重复查询,将查询结果存到内存中,减少数据库的负担。 Mybatis的缓存有三个级别。 类别说明一…

南昌建设工程质量监督网站出入库管理软件 免费

转载公众号 | DataFunSummit分享嘉宾:周晓欢 阿里巴巴 算法专家编辑整理:刘香妍 中南财经政法大学出品平台:DataFunSummit导读:实体抽取或者说命名实体识别 ( NER ) 在信息抽取中扮演着重要角色,常见的实体抽取多是对文…

人才网站建站百度官网首页登陆

安科瑞 须静燕 截至2023年10月,我国5G基站总数达321.5万个,占全国通信基站总数的28.1%。然而,随着5G基站数量的快速增长,基站的能耗问题也逐渐日益凸显,基站的用电给运营商带来了巨大的电费开支压力,降低5…

从哪看出网站的建站公司wordpress 排版不正常

CSS 实现无限波浪边框卡片 效果展示 鼠标悬停效果,底部色块的边框是无限滚动的波浪 鼠标没有悬停效果 CSS 知识点 CSS 基础知识回顾使用 radial-gradient 实现波浪边框使用 anumate 属性实现波浪边框动画和控制动画运动 波浪实现原理 波浪边框的实现思路其…

网站整套模板psd网站开发类型什么意思

实验名称:实验四 递推问题(一) 实验目的:熟练掌握一些递推问题的处理方法:仔细分析,不断尝试推理,充分利用数学知识,找出问题中的内在规律,抽象出递推的数学模型。 实验…

海南建设监理协会网站做个外贸网站设计

1、还未添加到暂存区:git checkout -- filename 执行命令后,会回退到未修改之前的状态 2、已经添加到暂存区:git reset HEAD filename 执行命令后,会回退到工作区之前的状态 3、已经 commit,但是还未 push git reset…

移动互联网网站建设国外用的网站

文章目录 1 简介2 Docker安装与配置2.1 安装Docker2.2 配置Docker镜像加速器2.3 调整Docker资源限制 3 准备Elasticsearch Docker镜像3.1 下载Elasticsearch镜像3.2 自定义镜像配置3.3执行Docker Compose 4 运行Elasticsearch容器4.1 创建Elasticsearch容器4.2 修改配置文件4.3…

常见的电子商务网站推广方式网站如何做关键词seo

在Java应用程序中调度作业时,Quartz是第一个考虑的工具。 Quartz是由最流行的RDBMS支持的作业调度程序。 这真的很方便,并且很容易与spring集成。 为了创建石英模式,您必须下载石英发行版并解压缩位于crystal-2.2.3 / docs / dbTables /中的…

网站建设技术要求河南高端网站高端网站建设

vue指令-插值表达式 1、什么是插值表达式2、Vue变量声明在哪里 1、什么是插值表达式 双大括号&#xff0c;可以把vue数据变量直接显示在标签内 2、Vue变量声明在哪里 data函数返回对象上&#xff0c;用key属性声明 示例&#xff1a; <template><div id"app&…

服装网站互联网技术学什么

CF653F. Paper task 简要题面 给定括号序列SSS&#xff0c;求其中本质不同合法括号序列个数。(∣S∣≤5∗105|S|\leq 5*10^5∣S∣≤5∗105) Solution 感觉用了一个很麻烦的方法。 我们可以考虑枚举本质不同串的右端点&#xff0c;每次动态地在SAMSAMSAM里面加入末尾元素&am…

做电子手环网站需求分析丰台做网站的公司

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…

让网站建设便宜到底北京网站页设计制作

基于TCP的本地通信&#xff08;客户机&#xff09;&#xff1a;创建流程&#xff1a;一、创建字节流式套接字&#xff08;socket函数&#xff09;&#xff1a; int sock_fd socket(AF_LOCAL,SOCK_STREAM,0);二、创建客户机和服务器的本地网络信息结构体并填充客户机和服务器本…

福州网站制作专业做专利费减是哪个网站

我们通常使用的笛卡尔坐标系统&#xff0c;角点通常在(0,0),即原点。初始边在x轴正半轴&#xff0c;终边与初始边成夹角。初始边逆时针旋转为正值&#xff0c;顺时针旋转为逆值。数学表示&#xff1a;角度&#xff1a;degreeradian*180/π 弧度&#xff1a;radiandegree*π/18…

汕头食品骏域网站建设WordPress站点添加ssl证书

20.有效的括号 题目链接&#xff1a;20.有效的括号 给定一个只包括 ‘(’&#xff0c;‘)’&#xff0c;‘{’&#xff0c;‘}’&#xff0c;‘[’&#xff0c;‘]’ 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括…

蚌埠市建设学校网站电脑视频制作软件

1.top命令找到占用CPU高的Java进程PID 2.根据进程ID找到占用CPU高的线程 ps -mp pid -o THREAD,tid | sort -r ps -mp 124682 -o THREAD,tid | sort -r 3.将指定的线程ID输出为16进制格式 printf “%x\n” tid printf "%x\n" 6384 18f0 4.jstack pid |…

在线书店网站怎么做九江有没有做网站的公司

课程地址&#xff1a;https://edu.csdn.net/course/detail/39240 你将收获 游戏辅助编程 Lua基础 C/CLua联合编程 适用人群 对游戏辅助技术感兴趣的人 课程介绍 本课程以TLB*和W*W为例子&#xff0c;讲述如何通过游戏的Lua脚本来实现一个游戏的辅助。众所周知&#xff…

石家庄做网站最好的公司哪家好公司网站模板

说明通达OA漏洞在去年上半年已爆出&#xff0c;这不趁着周末没事做&#xff0c;将源码下载下来进行复现学习。文件包含测试文件包含检测&#xff0c;payload1:ip/ispirit/interface/gateway.php?json{"url":"/general/../../mysql5/my.ini"}利用文件包含访…

网站seo新手服装设计就业前景

转自&#xff1a;http://www.linuxso.com/command/fsck.html 使用权限 : 超级使用者    使用方式 : fsck [-sACVRP] [-t fstype] [--] [fsck-options] filesys [...]    说明 &#xff1a; 在Linux系统中&#xff0c;为了增加系统性能&#xff0c;通常系统默认一些数据…

特性设计的网站中国建设银行网站公积金查询余额

目录 一、BP神经网络简介 1.1 什么是BP神经网络 1.2 BP神经网络的结构 二、BP神经网络的前馈与后馈 2.1 什么是BP神经网络的前馈 2.2 什么是BP神经网络的后馈 三、BP神经网络前馈与后馈的关系 3.1 BP神经网络前馈与后馈的区别 3.2 BP神经网络前馈与后馈的意义 四、BP…