什么是原型模式

区别于单例模式,原型模式的一个类可以有多个实例化的对象。

原型模式通过拷贝来产生新的对象,而不是new,并且可以根据自己的需求修改对象的属性。

image-20240114094925346

实现Cloneable接口实现拷贝

而拷贝又分为浅拷贝和深拷贝,两者在基本字段的拷贝没有区别,主要区别在于引用字段的拷贝

浅拷贝

调用super.clone()完成拷贝,不拷贝引用类型对象,也就是两个引用的字段都指向同一个对象

image-20240327154653079

深拷贝

可以重新clone()完成拷贝,自己新建一个引用类型对象,让两个引用的字段都指向不同的对象

image-20240327154735665