使用原型对象的方法创建对象的实列,创建的实例equals原型
final 类型修饰的成员变量不能进行深度拷贝
场景
- 类初始化需要消化非常多的资源,这个资源包括数据、硬件资源等
- 构造对象需要非常繁琐的数据准备或访问权限,则可以使用原型模式
- 工厂模式中使用
- 共有信息很多
浅拷贝
对象内引用原先原型的对象
深拷贝
对象内引用也拷贝一份
代码实现
package prototype;
//Cloneable 标记对象可拷贝
public class PersonClone implements Cloneable {
@Override //Override Object方法
public PersonClone clone(){
try {
//clone 不会调用构造方法
return (PersonClone)super.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return null;
}
}
package prototype;
public class MainClass {
public static void main(String[] args) {
PersonClone personClone = new PersonClone();
PersonClone clone = personClone.clone();
System.out.println(personClone.hashCode());
System.out.println(clone.hashCode());
}
}