原型模式也是创建对象的一种方式。
如果需要创建的对象的初始化比较耗时,并且对应的属性取值都差不多的时候,可以考虑通过原型模式来创建。
原型模式是通过直接拷贝其他对象来创建对象,然后更改对应的属性来得到新的对象
深拷贝和浅拷贝原型模式涉及到了对象的拷贝,对象的拷贝分为浅拷贝和深拷贝。
浅拷贝
浅拷贝的时候,对于引用类型的属性,拷贝的时候不会新生成对象,而是拷贝对象的地址。
两个对象中的属性的引用是共用一个对象的。
深拷贝
深拷贝的时候,对于引用类型的属性,会为其创建新的对象。
两个对象中的属性是指向不同的对象。
这里创建新的对象指的是 申请新的内存,将对应的数据直接拷贝到新内存中,而不是重新执行初始化。
由于深拷贝会重新创建对象,所以会比浅拷贝要耗时。
浅拷贝的时候,两个引用共享一个对象,修改会影响其他引用。
Java中的clone()Java中的对象如果想要被拷贝,需要实现Cloneable接口。
clone()方法默认是实现浅拷贝。
如果想要实现深拷贝的话,需要重写clone()方法,自己实现对应的深拷贝,也就是为引用属性重新new 一个对象并赋值。



