java中Object已经实现了clone()的方法,所以原型模式就变得非常的简单。
public abstract class AbstractSpoon implements Cloneable {
String spoonName;
public void setSpoonName(String spoonName) {
this.spoonName = spoonName;
}
public String getSpoonName() {
return this.spoonName;
}
public Object clone() {
Object object = null;
try {
object = super.clone();
} catch (CloneNotSupportedException exception) {
System.err.println("AbstractSpoon is not Cloneable");
}
return object;
}
}
下面是一个具体类:
public class SoupSpoon extends AbstractSpoon {
public SoupSpoon() {
setSpoonName("Soup Spoon");
}
}
使用原型的方法很简单:
AbstractSpoon spoon = new SoupSpoon();
AbstractSpoon spoon2 = spoon.clone();