原型模式
//原型模式
//CopyRight(C) CAnca Software Office.2006
//Created by CAnca.
public class PrototypeMode{
public static void main(String[] args){
AbstractSpoon spoon1 = new SoupSpoon();
AbstractSpoon spoon = new SaladSpoon();
print(spoon1.getName());
print(spoon.getName());
AbstractSpoon s1 = (AbstractSpoon)spoon1.clone();
print(s1.getName());
}
public static void print(String str){
System.out.println(str);
}
}
abstract class AbstractSpoon implements Cloneable{
String spoonName;
public void setName(String strName){
this.spoonName = strName;
}
public String getName(){
return spoonName;
}
public Object clone(){
Object object = null;
try{
object = super.clone();
}catch (CloneNotSupportedException exception) {
System.err.println("AbstractSpoon is not Cloneable");
}
return object;
}
}
class SoupSpoon extends AbstractSpoon
{
public SoupSpoon()
{
setName("Soup Spoon");
}
}
class SaladSpoon extends AbstractSpoon
{
public SaladSpoon()
{
setName("Salad Spoon");
}
}