这篇来看一下jdk中运用的原型模式。
Cloneable接口并没有任何的方法,Cloneable是一个标志接口。
但是并非实现Cloneable的接口都可以调用clone方法,因为Object中的clone方法修饰符是protected
所以要想在外部调用clone()需要重写object的clone方法。
同时object中的clone方法是通过调用本地方法的实现的(并且是浅复制的)
那么如果想实现深复制,应该如何编写java代码呢。
1、自己new对象。在自己的clone方法里面,该创建就创建,该赋值就赋值。
2、巧妙地利用序列化进行复制。
3、在clone中复制成员对象的时候也调用clone,进行层层复制。
由于object中的clone是native方法,源码解析部分就省略了。。