工厂方法模式

抽象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.html

 

posted @ 2018-09-26 10:49  IT_lss  阅读(279)  评论(0编辑  收藏  举报