Java原型设计模式是什么

发布时间:2021-06-24 14:08:31 作者:chen
来源:亿速云 阅读:123

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

原型模式

原型模式

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

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

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

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

 <bean id="" class="" scope="prototype"/>

怎么实现原型模式呢?

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

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

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

举个例子

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

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

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

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

使用深拷贝完成创建对象

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

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

3、深拷贝实现方式

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

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

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

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

推荐阅读:
  1. PHP设计模式:原型模式
  2. JavaScript中原型和原型链是什么

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java

上一篇:PHP中SHA1withRSA加密生成签名及验签的示例分析

下一篇:Git各指令的本质是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》