工廠方法模式

抽象Car類:
public abstract class Car{
  public abstract void createCar();
}

具體實現類:
public class AuDi extends Car{
  @Override
  public void createCar(){
    System.out.println("Audi");
  }
}
public class BMW extends Car{
  @Override
  public void createCar(){
    System.out.println("BMW");
  }
}
工廠類:
public class FactoryCar{
  public static <T extends Car> getCar(class<T> clz){
    Car car = null;
    try{
      car = (Car) class.forName(clz.getName()).newInstance();
    }catch(Exception e){
      e.printStackTrace();
    }
    
    return (T) car;
  }
}

使用factory:
Car audi = FactoryCar.getCar(Audi.class);
audi.createCar();

Car bmw = FactoryCar.getCar(Audi.class);
bmw.createCar();

  

  

抽象car類能夠換成接口,具體看:http://www.runoob.com/design-pattern/factory-pattern.htmlhtml

相關文章
相關標籤/搜索