开篇
对于Cloneable接口不了解的可以参照Java技巧——Cloneable接口与clone方法,我们主要围绕这一接口来聊一聊原型模式。
核心思想
使用原型实例来确定对象的种类,使用clone方法实现对于这些原型的拷贝,产生新的对象。不通过new来产生对象而是通过clone方法复制对象的的模式为原型模式。
简单实现
1 | public class A implements Cloneable{ |
实现的过程非常简单,基本就是对clone函数的重载与实现,使用Cloneable接口进行标记辅助,除此之外便没有其他需要注意的了。
小结
主要是对clone方法的重载,一个接口一个方法就是原型模式的全部,在实现上是在内存上直接复制二进制流,效率很高,比new出来的性能要高,但是要注意一下,clone的过程不会调用构造函数,也就是说通过这一方法创造出来的对象不会有构造函数的处理,所以在具体使用时希望大家根据需求灵活进行,特别是在深浅拷贝的选择上一定要仔细考虑。