首页Java基础Java源码Java框架设计模式JavaEEJava Web开发视频教程

您现在的位置:首页 >

设计模式

关注我们

优就业官方微信
优就业官方微信扫描二维码,即可与小
U亲密互动
优就业官方微博
优就业官方微博扫码关注,更有精彩活动
等你参与
  • 优就业官方QQ号

    优就业官方QQ号

    一键加好友
  • 咨询电话:( 9:00-22:00 )

    400-650-7353

【Java设计模式】Java设计模式之原型模式的优点及缺点分析

2018-02-07 17:58:27

Prototype原型模式:用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象。原型模式:(prototype)用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象,在Java中原型设计模式已经提供了对语言级别的支持。

原型模式其实就是从一个对象创建另一个可定制的对象,而且不需要知道任何创建细节 JAVA中提供了cloneable接口,实现一个接口,重写一个方法即完成了原型模式。在实际应用中,原型模式很少单独出现。经常与其他模式混用,他的原型类Prototype也常用抽象类来替代。使用原型模式创建对象比直接new一个对象在性能上要好的多,因为Object类的clone方法是一个本地方法,它直接操作内存中的二进制流,特别是复制大对象时,性能的差别非常明显。一般在初始化信息不变的情况下,克隆是最好的办法,既隐藏了对象创建的细节,又大大提高了java中的colne方法,是这样的,如果字段是值类型的,则对该字段是执行逐位复制,如果该字段是引用类型的,则复制的是引用但是不复制引用的对象,既原始对象及副本对象引用同一对象。

总结:

原型模式的Prototype类必须继承Cloneable接口,并对接口中的clone方法进行实现,主要的优点与缺点如下:

优点

使用原型模型创建一个对象比直接new一个对象更有效率,因为它直接操作内存中的二进制流,特别是复制大对象时,性能的差别非常明显。

隐藏了制造新实例的复杂性,使得创建对象就像我们在编辑文档时的复制粘贴一样简单。

缺点

由于使用原型模式复制对象时不会调用类的构造方法,所以原型模式无法和单例模式组合使用,因为原型类需要将clone方法的作用域修改为public类型,那么单例模式的条件就无法满足了。

使用原型模式时不能有final对象。

Object类的clone方法只会拷贝对象中的基本数据类型,对于数组,引用对象等只能另行拷贝。这里涉及到深拷贝和浅拷贝的概念。

相关推荐

优就业Java全栈开发课程全新升级

免责声明:本文来源于网络,由网友提供或网络搜集,仅供个人交流学习参考使用,不涉及商业盈利目的。如有版权问题,请联系本站管理员予以更改或删除。谢谢合作!

猜你喜欢

 
 
咨询中心
优就业微信扫一扫
微信扫一扫

400-650-7353

加入官方微博