WEB开发网
开发学院软件开发Java hand first 设计模式 - 工厂模式 阅读

hand first 设计模式 - 工厂模式

 2009-09-17 00:00:00 来源:WEB开发网   
核心提示:工厂模式定义,创建一个对象接口,但由子类决定要实例化的类是哪一个.工厂方法让类把实例化推迟到子类. 抽象的比萨商品类 Java代码publicabstractclassPiazzStore{publicPiazzgetPiazz(Stringname){Piazzpiazz=createPiazz(name);piaz

工厂模式定义,创建一个对象接口,但由子类决定要实例化的类是哪一个.工厂方法让类把实例化推迟到子类.

抽象的比萨商品类

Java代码   

public abstract class PiazzStore { 
 
 public Piazz getPiazz(String name){ 
 
 Piazz piazz = createPiazz(name); 
  
 piazz.make(); 
  
 return piazz; 
  
 } 
 
   //让子类去实现 
   public abstract Piazz createPiazz(String name); 
 
}

中国比萨商店

Java代码   

public class ChinaPiazzStore extends PiazzStore { 
 
 @Override 
 public Piazz createPiazz(String name) { 
 // TODO Auto-generated method stub 
 if(name.equals(PiazzEnum.ChinaPiazzOnHuAn.getVal())){ 
  return new HuAnPiazz(); 
 }else if(name.equals(PiazzEnum.ChinaPiazzOnHuBei.getVal())){ 
  return new HuBeiPiazz(); 
 }else{ 
  throw new RuntimeException("piazz name is error"); 
 } 
 } 
 
}

台湾比萨商店

Java代码   

public class TaiWanPiazzStore extends PiazzStore { 
 
 @Override 
 public Piazz createPiazz(String name) { 
 // TODO Auto-generated method stub 
 // TODO Auto-generated method stub 
 if (name.equals(PiazzEnum.TaiWanPiazzOnTaiNan.getVal())) { 
  return new TaiNanPiazz(); 
 } else if (name.equals(PiazzEnum.TaiWanPiazzOnTaiZhong.getVal())) { 
  return new TaiZhongPiazz(); 
 } else { 
  throw new RuntimeException("piazz name is error"); 
 } 
 } 
}

1 2 3 4  下一页

Tags:hand first 设计模式

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接