设计模式之~原型模式

定义:用原型实例指导创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需知道任何创建的细节。

优点:

一般在初始化的信息不发生变化的情况下,克隆是最好的办法。这即隐藏了对象创建的细节,又对性能大大的提高。

如果字段是值类型的,则对该字段执行逐位赋值,如果字段是引用类型,则复制引用但不复制引用的对象;因此,原始对象及其复本引用同一对象。

浅复制:被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用都仍然指向原来的对象。

深复制:把引用对象的变量指向复制过的新对象,而不是原有的被引用的对象。 (把要复制的对象所引用的对象都复制一遍)

缺点:

实现深复制时可能需要比较复杂的代码。

适用场景:

原型模式通常在以下情况使用:通过其构造方法创建一个对象需要耗时很久或者消耗很多资源时,可以考虑使用原型模式。

(使用clone方法创建对象不需要调用其构造方法,它的本质是在内存中复制对象)

一般在初始化的信息不发生变化的情况下,克隆是最好的办法。

结构图:

原型模式的注意事项(java):

1、使用原型模式复制对象不会调用类的构造方法。

        因为对象的复制是通过调用Object类的clone方法来完成的,它直接在内存中复制数据,因此不会调用到类的构造方法。不但构造方法中的代码不会执行,甚至连访问权限都对原型模式无效。还记得单例模式吗?单例模式中,只要将构造方法的访问权限设置为private型,就可以实现单例。但是clone方法直接无视构造方法的权限,所以,单例模式与原型模式是冲突的,在使用时要特别注意。

2、深拷贝与浅拷贝。

        Object类的clone方法只会拷贝对象中的基本的数据类型,对于数组、容器对象、引用对象等都不会拷贝,这就是浅拷贝。如果要实现深拷贝,必须将原型模式中的数组、容器对象、引用对象等另行拷贝。

 

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

华安鑫创:创新举措推动新旧产业融合升级

华安鑫创控股(北京)股份有限公司(以下简称“华安鑫创”、“公司”)是一家汽车智能座舱电子综合服务商,主营业务为汽车中控和液晶仪表等座舱电子产品的核心显示器件定制选型、软件系统开发及配套器件的销售。华安鑫创自…

华安泰VIKOR“跨越者”解码服务器:深入系统全面应用

随着视频监控系统的高清化、智能化趋势,监控设备前端采集的数据量愈加庞大,这就必定需要一个强大的后端管理平台进行有效的储存和处理。VIKOR“跨越者”高清监控系统包涵了高清前端设备的同时,又有多种后端存储设备、管理平台、软硬件解码等设…

专精特新、高端领航 中交华安核心技术及产品介绍第1期:单侧型桥墩防护解决方案——SA级高强型低变形量护栏...

来源:中交华安 导读 1.大型车辆撞击桥墩可能引发重特大交通事故,造成严重事故后果和不良社会影响。 2.目前国内外鲜少有专门用于桥墩防护的安全设施,可用于路侧距离较近桥墩或中分带内薄壁墩的安全设施仍处于空白。 3.中交华安品牌SA级高强型…

凝聚安防正能量 华安泰坚定细分市场发展之路

中国安防行业经过三十多年的快速发展,目前已进入了转型期,这种转型既是自身发展使然,也有不得己的外因影响。今年,安防行业洗牌加速,更有传言四起,动摇军心。每一次重大的变革都必须经历一次痛苦的蜕变。中…

华安泰2014摄影作品征集:盛夏里的青春

2014年夏天,华安泰邀请您用镜头记录生活,以“盛夏里的生活”和“盛夏里的青春”为主题征集图片故事,优秀照片将在企业内刊《华安泰人》、公众微信“华安泰智能”和官网www.vikorcctv.com中展示。 征集主题: 1、盛夏里的生活 盛夏里…

mx250显卡天梯图_mx250显卡天梯图_2020年最新笔记本显卡天梯图,看看你的显卡排在哪!...

显卡天梯图就是显卡的性能排行榜,目前显卡主要有Nvidia(英伟达)和AMD(超微半导体)两大品牌。我们都知道,显卡性能决定了电脑的图像处理能力。对于喜欢玩游戏的电脑用户来说,处理器和显卡是用户最关心的电脑硬件,一块好的显卡对于游…

adreno性能天梯图_深度学习之GPU显卡性能天梯图

在深度学习的显卡市场,英伟达的地位还是暂时无人能够撼动的。专业卡暂不纳入考虑,毕竟性价比太低了。大家平时使用的还是老黄的游戏卡,性能排第一的就是Titan RTX了,具备24G大显存,然而售价也高达两万块。接下来就是大…

计算机显卡排名,显卡天梯图_显卡性能天梯图_2021笔记本显卡天梯图-中关村在线...

7612 影驰Geforce RTX 3090 HOF Extreme 限量版 排名 2领先 98.56%的对手 重要参数 核心频率:基础频率:1395MHz加速频率:1860MHz 显存类型:GDDR6X 流处理器:10496个 显存容量:24GB 详细参数 > 7466 七彩虹iGame GeForce RTX 3090 Neptune OC 排名 3领先 97.84%的对手 …

笔记本显卡天梯图2023 笔记本显卡性能天梯图2023年2月

2023最值得入手的笔记本选哪个版本好这些点很重要看过你就懂了http://www.adiannao.cn/dy 一、RTX 3080Ti笔记本显卡 1、将旗舰3080Ti显卡引入笔记本电脑,笔记本将搭载16GB GDDR6显存。 2、RTX 3080Ti笔记本电脑的起售价为2499美元。 3、满功耗的RTX 3080Ti可以达…

[转载]pAppLocale(微软AppLocale修改版,不会有乱码后遗症)+辅助配件

【转码】pAppLocale(微软AppLocale修改版,不会有乱码后遗症)辅助配件 这里仅就修改版及辅助配件进行介绍,对此软件没概念的烦请自行搜寻引擎查找! pAppLocale(Microsoft AppLocale 修改版) ◎出处 http://www.csie.ntu.edu.tw/~piaip/ ◎下载…

转 Applocale:非Unicode程序界面乱码解决方法笔记

转 Applocale:非Unicode程序界面乱码解决方法笔记 2008年11月25日 星期二 下午 1:33 注: 为了不让 pAppLocale 消失 我也做了个下载备份 地址: http://www.brsbox.com/filebox/down/fc/1d30198f826cbb28eb110a0a8cfe5429 -------------------…

推荐工具:微软AppLocale

可以在不用更改“区域和语言选项”(不需要重启系统)的情况下,使应用程序读取非Unicode文件(本文示例为日文EA文档),微软出品。 1.下载 & 安装:: http://www.microsoft.com/down…

Win7系统下如何成功安装 Microsoft Applocale (附安装软件技巧)

相信玩游戏的都知道 Microsoft Applocale,在这里不做介绍,我要讲的是如何正确并成功安装这个软件,可能是由于和win7系统不兼容的缘故吧,很多人都安装失败,安装的出现下面这个图。 我就直入主题吧,一次进行…

app locale Android 8,AppLocale2模块

App Locale 2模块是一款非常实用简单的切换设置语言的应用软件。这款软件里面被植入了世界上的大多数语言,可以让用户与各个国家的朋友进行交流与沟通,功能很强大,软件使用方法非常简单,如果有需要的朋友,就快来下载这…

浏览器表情包

浏十年变化 浏览器00001-十年变化.jpg 快乐 浏览器00002-快乐.gif IE你是算了 浏览器00003-IE你是算了.png IE使人头痛 浏览器00004-IE使人头痛.jpg 给IE一点尊重因为要是没有IE你们就无法下载这些浏览器了 浏览器00005-给IE一点尊重因为要是没有IE你们就无法下载这些浏览器了.…

biu爱心html,biu爱心给你表情包 - biu爱心给你微信表情包 - biu爱心给你QQ表情包 - 发表情 fabiaoqing.com...

biu,爱心给你 - 爱心给你 全给你 _爱心表情 好多爱心都给你 - 爱心给你 全给你 _爱心表情 给你爱心 - 爱心给你 全给你 _爱心表情 爱心 - 爱心给你 全给你 _爱心表情 给你我的一颗心 - 爱心给你 全给你 _爱心表情

精通linux开关机表情包,关机表情包 - 关机微信表情包 - 关机QQ表情包 - 发表情 fabiaoqing.com...

夜已深,关机中_夜已_关机表情 关机睡觉啦晚安安!_晚安_关机_睡觉表情 关机睡觉啦晚安安_晚安_关机_睡觉表情 都十二点了,还不回来电话又关机,让人担心死了_关机_十二点_电话_担心_回来表情 关机睡觉晚安安(二次元)_二次元_晚安_关机_睡觉表情

基于Python实现看图说话和微表情识别

1. 设计思想 对于人类来说,描述一张图片的内容是非常重要的。但因这个过程并没有标准答案,因此对于计算机来说这并不是一个简单地过程。我们希望通过本次实验能够设计一个模型完成让计算机给图片设定 caption 的目标。更进一步,如果在图片中…

基于Python实现看图说话和微表情识别【100010260】

1. 设计思想 对于人类来说,描述一张图片的内容是非常重要的。但因这个过程并没有标准答案,因此对于计算机来说这并不是一个简单地过程。我们希望通过本次实验能够设计一个模型完成让计算机给图片设定 caption 的目标。更进一步,如果在图片中检…