-
原型模式(Prototype),用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
-
原型模式其实就是从一个对象在创建另外一个可定制的对象,而且不需知道任何创建的细节
-
本样例代码(clone方法)仅完成浅拷贝,如果字段是值类型的,则对该字段执行逐位复制,如果字段是引用类型,则复制引用不复制引用的对象,因此引用类型字段 原始对象及副本引用同一个对象。
-
Prototype.java
public abstract class Prototype{
private String id;
public Prototype(String id) {
this.id = id;
}
public String getId() {
return id;
}
}
- ConcretePrototype1.java
public class ConcretePrototype1 extends Prototype implements Cloneable{
public ConcretePrototype1(String id) {
super(id);
}
@Override public Object clone() throws CloneNotSupportedException {
return super.clone();
}
}
- PrototypeMain.java
public class PrototypeMain {
public static void main(String[] args) throws CloneNotSupportedException {
ConcretePrototype1 p1 = new ConcretePrototype1("12");
ConcretePrototype1 c1 = (ConcretePrototype1)p1.clone();
System.out.println(p1.hashCode());
System.out.println(c1.hashCode());
}
}