反射實現簡單工廠模式

2021-07-10 07:21:00 字數 703 閱讀 6158

傳統的簡單工廠模式缺點是:

缺點:由於工廠類集中了所有例項的建立邏輯,這就直接導致一旦這個工廠出了問題,所有的客戶端都會受到牽連;

,這樣一來,但產品的種類增加的時候,即有不同的產品介面或者抽象類的時候,工廠類就需要判斷何時建立何種種類的產品,

這就和建立何種種類產品的產品相互混淆在了一起,違背了單一職責,導致系統喪失靈活性和可維護性。而且更重要的是,簡單工廠模式違背了「開放封閉原則」,

就是違背了「系統對擴充套件開放,對修改關閉」的原則,因為當我新增加乙個產品的時候必須修改工廠類,相應的工廠類就需要重新編譯一遍。

具體**,namespace newfeaturestudy

public class orange : ifruit}}

public class fruitfactory2//不用反射的工廠類

}public ifruit create(string name)}}

public class fruitfactory//反射的工廠類

}public ifruit makefruit(string name)

catch (typeloadexception e)

", e.message);

}return myfruit;}}

class program

}}

利用反射可以克服那些邏輯判斷

工廠模式 簡單工廠模式(傳統,加反射)

簡單工廠模式 核心 乙個介面,乙個繼承介面的集具體類,乙個工廠類 本質 工廠類的生產產品例項根據建立例項時傳入引數的不同,動態的選擇應該建立哪乙個具體類的例項。inte ce ifruit 產品類 class implements ifruit 工廠類 class fruitfactory publ...

利用反射機制實現工廠模式

細節 命名規則類,介面名稱都得大寫 寫完 記得格式化,就算是測試 貼出來也是給人看的。不能太水。inte ce fruit public void eat class orange implements fruit class factory catch exception e return f c...

簡單工廠模式 XML解耦 反射

目錄 一 簡單工廠模式 二 簡單工廠模式角色 三 普通 例項 四 配置檔案 反射 五 uml圖 從字面意思看來就是要有乙個工廠類,那麼這個工廠類是幹什麼的呢?建立並返回乙個具體物件。應用場景如下 假如我們要做乙個計算器,它有很多個功能。加減乘除取餘乘方等,利用簡單工廠模式,我們要設計乙個計算類ope...