原型模式

canca canca
2007-03-26 14:47
1
0

//原型模式
//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");
 }
}

发表评论