小A:“师兄,原型模式应该如何使用?”
大B:“好!因为Java中的提供clone()方法来实现对象的克隆,所以Prototype模式实现一下子变得很简单。”
以勺子为例:
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;
}
}
有两个具体实现(ConcretePrototype):
public class SoupSpoon extends AbstractSpoon
{
public SoupSpoon()
{
setSpoonName(“Soup Spoon”);
}
}
public class SaladSpoon extends AbstractSpoon
{
public SaladSpoon()
{
setSpoonName(“Salad Spoon”);
}
}
调用Prototype模式很简单:
AbstractSpoon spoon=new SoupSpoon();
AbstractSpoon spoon=new SaladSpoon();
当然也可以结合工厂模式来创建AbstractSpoon实例。
在Java中Prototype模式变成clone()方法的使用,由于Java的纯洁的面向对象特性,使得在Java中使用设计模式变得很自然,两者已经几乎是浑然一体了。