java中的原型模式理解

来源:互联网 发布:二级域名泛解析 nginx 编辑:程序博客网 时间:2024/05/18 06:26

//测试类
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");
 }

}


 

原创粉丝点击