028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

Java原型设计模式是什么

本篇内容介绍了“Java原型设计模式是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

成都创新互联公司-专业网站定制、快速模板网站建设、高性价比文登网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式文登网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖文登地区。费用合理售后完善,十多年实体公司更值得信赖。

原型模式

原型模式

1、原型模式(Prototype模式)是指:用原型实例指定创建对象的种类,并且通过拷贝这些原型,创建新的对象(复制,粘贴,克隆的意思,尽量避免new的方式)

2、原型模式是一种创建型设计模式,允许一个对象再创建另外一个可定制的对象,无需知道如何创建的细节

3、工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建,即 对象.clone()

这个原型模式我是想了一天,都没有想到实际开发怎么能用到它,看了很多博客说是Spring创建bean的时候能用到它,在看源码的时候,好多注解式框架就可以看到

 

怎么实现原型模式呢?

原型模式:浅拷贝和深拷贝

1、对于数据类型是基本数据类型的成员变量,浅拷贝会直接进行值传递,也就是将该属性值复制一份给新的对象。

2、对于数据类型是引用数据类型的成员变量,比如说成员变量是某个数组、某个类的对象等,那么浅拷贝会进行引用传递,也就是只是将该成员变量的引用值(内存地址)复制一份给新的对象。因为实际上两个对象的该成员变量都指向同一个实例。在这种情况下,在一个对象中修改该成员变量会影响到另一个对象的该成员变量值,从而达不到我们的需求

举个例子

诸葛上学的时候绝对是个学渣:每天都不写作业,每天早读下来老师都要检查作业,所以诸葛从来早读不读书,和班花班长学习委员关系搞好,每天都来抄他们的作业,完成一个复制的过程,那么问题来了,每个班不止有一个学渣,学渣有那种憨憨学渣和聪明学渣,而诸葛就是那种聪明点的学渣

憨憨学渣:抄作业不管三七二十一,拿着就抄,等老师检查的时候,老师就会发现这叼毛玩意的作业怎么和班花的作业一样,不用想了,在老师眼里,肯定是憨憨学渣抄别人的(浅拷贝)

聪明一点的学渣:抄作业要有窍门,不能让老师发现,就做点手脚,答案是一样的都是同一个对象,过程稍微改点,一种题的解法是有很多种方法的(深拷贝)

使用浅拷贝完成创建对象(实际开发肯定不要用)

使用深拷贝完成创建对象

1、复制对象的所有基本数据类型的成员变量值

2、为所有引用数据类型的成员变量申请存储空间,并复制每个引用数据类型成员变量所引用的对象,直到该对象可达的所有对象。也就是说,对象进行深拷贝要对整个对象进行拷贝

3、深拷贝实现方式

1:重写clone方法来实现深拷贝

2:通过对象序列化实现深拷贝(推荐)

总结原型模式的注意事项和细节

“Java原型设计模式是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!


网站题目:Java原型设计模式是什么
网页路径:http://www.tsicrk.com/article/pdeddh.html

其他资讯

让你的专属顾问为你服务

0.6918s