1.工廠用來生產產品,用oo語言來說在方法中產生例項,不同的產品需要不同的工廠,使2者都具有多型性(變化),但產品和生產產品的工廠也很類似(抽象類),因此需要用抽象類來封裝變化。
2.工廠模式的簡單表現形式是簡單工廠(工廠方法簡單),複雜表現形式是抽象工廠(產品的2維變化問題),產品的複雜度決定工廠方法的複雜度。
3.角色劃分
抽象工廠,宣告生產產品的方法。
具體工廠,實現方法具體建立產品例項。
抽象產品,提供產品標準。
具體產品,將標準應用於產品。
簡單工廠角色不分抽象和具體,只有工廠角色。
4.擴充套件
使用多個工程方法
產品的迴圈使用(將產品放到集合中,操作集合)
5.相關其他模式
模板方法模式
mvc模式
享元模式
備忘錄模式
6.利用.net中的反射機制可以減少由於產品的變化導致客戶端呼叫**的修改,將這項工作交給配置檔案。
7..net中的應用
asp.net http通道
簡單工廠模式,工廠模式,抽象工廠模式
三種模式看了一天,記錄下自己的理解 headfirst,比薩店為例 1,簡單工廠模式 乙個具體的工廠類 pizzafactory 乙個抽象的產品類pizza,可以派生出多個具體的產品類 客戶 pizzastore類 工廠類 pizzafactory類關聯產品類pizza,工廠生產出不同型別的pizz...
簡單工廠模式 工廠模式 抽象工廠模式
簡單工廠模式 簡單工廠模式的最大優點在於工廠類中包含了必要的邏輯判斷,根據客戶端的選擇條件動態例項化相關類,對於客戶端來說,去除了與具體產品的依賴。但增加功能時,需增加 case 邏輯判斷分支條件,修改了原有的類,我們不但對擴充套件開發了,對修改也開放了,違背了開放 封閉原則。工廠方法模式,定義了乙...
簡單工廠模式 工廠模式 抽象工廠模式
其實這個三個c 的設計模式已經學習很長時間了,今晚才想起來要寫這三個設計模式,為什麼要用c 中的設計模式呢?for example,你已經會開車了,正著開,倒著開,轉彎,這些都是開車基本的,但是你並沒有很高的車技,並不會炫酷。漂移,就好像c 中的設計模式一樣,在你學好c 的基礎上,嫻熟的應用出的新技...