Java代碼實現設計模式之工廠模式


工廠設計模式:為了解耦合,把對象的創建者與對象的使用者分開。
  生活中:批量生產產品
  Java中:批量生產對象

分工:
  把生產(創建)對象與使用對象分開了,解耦合

1、簡單工廠模式
  優點:代碼比較簡潔
  缺點:如果增加新的產品類型,需要修改工廠類
  違反了面向對象的一個開發原則:對擴展開放,對修改關閉

2、工廠方法模式

  (1)為了生產對象與使用對象分開
  (2)如果增加新產品,就不需要修改原來的工廠類
  優點:遵循了增加新產品,不修改原來的類的原則,
  缺點:類太多了

示例:簡單工廠模式

class SimpleFactory2{
  public static Car getCar(String type){
    if("BMW".equals(type)){
      return new BMW();
    }else if("BZ".equals(type)){
      return new Benz();
    }
    return null;
  }
}

示例:工廠方法模式

interface Factory{
  VehiCle getVehiCle ();
}

class BMWFactory implements Factory{

  @Override
  public Che getChe() {
    return new BaoMa();
  }
}
class BZFactory implements Factory{

  @Override
  public Che getChe() {
    return new BZ();
  }
}

......

示例:使用反射,結合工廠方法模式與簡單工廠模式

class SimpleFactory{
  public static Vehicle getVehicle(String className)throws Exception{
    Class clazz = Class.forName(className);

    Object obj = clazz.newInstance();

    if(obj instance of Vehicle){

      return (Vehicle) obj;  

    }
    return null;
  }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM