什么是原型设计模式?
原型设计模式的需求是来自于,快速创建相同的类。
为什么要使用原型设计模式
原型设计模式的需求是来自于,快速创建相同的类,相比使用new关键词所带来的开销会小得多。
怎么使用原型设计模式?
必须实现Cloneable
相关知识:
深复制:对值类型和引用类型的对象都生成一份新的拷贝。java中可以通过序列化来进行深复制,前提是对象以及对象内部所引用的对象都是可序列化的,否则需要考虑将不支持的序列化对象设为transient,排除在序列化之外.
浅复制:复制了值类型对象,对应引用类型对象,只复制引用,就会出现两个对象指向同一片内存空间。Java中的clone为浅复制。
上代码:
抽象的人
public abstract class AbsPerson implements Cloneable {
String color;
public void setColor(String color) {
this.color = color;
}
public String getSpoonName() {
return this.color;
}
public Object clone() {
Object object = null;
try { object = super.clone();
} catch (CloneNotSupportedException exception) {
System.err.println("AbstractSpoon is not Cloneable");
}
return object;
}
}
实例化对象黑人
public class BlackPerson extends AbsPerson{
public BlackPerson(){
setColor("BlackPerson");
}
}
使用
public class TestBuilder {
public static void main(String[] args) {
BlackPerson spoon = new BlackPerson();
spoon.setColor("black");
spoon.clone();
}
}