原型模式

一、什么是原型模式

原型模式(Prototype Pattern)用于创建重复的对象,同时又能保证性能。它属于创建型设计模式,它提供了一种创建对象的最佳方法。
在使用原型模式时,我们需要首先创建一个原型对象,再通过复制这个原型对象来创建更多同类型的对象。一般这个原型对象的实例化很复杂,需要消耗很多的硬件资源或者数据资源。

二、为什么使用原型模式

现在一般会使用new关键字指定类名生成类的实例(PS:我们以前使用java.lang.Cloneable的一个很大原因是使用new创建对象的速度相对来说会慢一些,随着JVM性能的提升,new的速度和Object的clone()方法的速度差不多了)。
但下面这些情况下,就需要根据现有的实例来生成新的实例:
1、对象种类繁多,无法将他们整合到一个类的时候;
2、难以根据类生成实例时;
3、想解耦框架与生成的实例时。

三、原型模式的浅拷贝和深拷贝

3.1、浅拷贝

只拷贝基本数据类型,对于对象属性拷贝其中的引用地址
实现步骤:
1、实现Cloneable接口
2、实现clone方法

浅拷贝clone方法.png

总结:
浅拷贝:复制基本数据类型,引用类型没有进行复制

3.2、深拷贝

复制基本数据类型和引用类型
实现步骤:
1、实现Cloneable接口
2、实现clone方法

深拷贝clone方法.png

四、原型模式的优缺点

4.1、优点

1、抽象出共同点,仅需要修改对象间的不同点
2、大大减少JVM创建对象的时间

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容