1.定义
通过复制现有实例来创建新的实例,无需知道相应类的信息。关键字:Clone。
2.深拷贝和浅拷贝
浅复制:将一个对象复制后,基本数据类型的变量都会重新创建,而引用类型,指向的还是原对象所指向的。
深复制:将一个对象复制后,不论是基本数据类型还有引用类型,都是重新创建的。简单来说,就是深复制进行了完全彻底的复制,而浅复制不彻底。clone明显是深复制,clone出来的对象是是不能去影响原型对象的。
3. 浅拷贝重点是super.clone()这句话,super.clone()调用的是Object的clone()方法。
4.深拷贝
实现方式1:重写clone方法
实现方式2:通过对象序列化来实现(推荐)
5. 总结
原型模式的本质就是clone,可以解决构建复杂对象的资源消耗问题,能在某些场景中提升构建对象的效率;还有一个重要的用途就是保护性拷贝,可以通过返回一个拷贝对象的形式,实现只读的限制。