java中的原型模式理解

//測試類
public class TestPrototype {

 /**
  * @param args
  */
 public static void main(String[] args) {
  Sheep d1=new DuoLiSheep();
  Sheep d2=new DuoMeiZiSheep();
  System.out.println(d1.SheepName);
  System.out.println(d2.SheepName);

 }

}


//抽象原型羊,有一個公開訪問的可讀可寫的方法
//java的cloneable實現了copy的方法,正好在這個模式用上,當然在此基礎上,必須得實現CloneAble
//接口的克隆方法了
abstract class Sheep implements Cloneable {
 
 /*
 Sheep(){
  System.out.println("Sheep");
 };
 */
 String SheepName;
 public void SetSheepName(String _SheepName)
 {
  this.SheepName=_SheepName;
 }
 public String GetSheepName()
 {
  return SheepName;
 }
 public Object Clone()
 {
  Object obj=null;
  if(null==obj)
  {
   try{
   obj=super.clone();
   }catch(CloneNotSupportedException e)
   {
    return obj;
   }
  }
  return obj;
 }
}

//發出要克隆的命令(多利羊)
class DuoLiSheep extends Sheep
{
 public DuoLiSheep()
 {
  SetSheepName("DuoLiSheep");
 }

}
//發出要克隆的命令(多美滋羊)
class DuoMeiZiSheep extends Sheep
{
 public DuoMeiZiSheep()
 {
  SetSheepName("DuoMeiZiSheep");
 }

}


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章