最近看了劉偉老師的《設計模式》,以下部分為自己學習簡單工廠模式總結和思考,文中也引用了劉偉老師書中的很多經典部分,若有不當之處,希望得到大佬的指點。
正文:簡單工廠模式屬於建立型模式:關注的是物件的建立過程,它主要描述如何將物件的建立和使用分離,讓使用者在使用物件時無需關心物件的建立細節,從而使得系統更加符合單一職責原則,降低系統的耦合度,讓設計方案更加易於修改和擴充套件。
簡單工廠模式是gof的23種設計模式的基礎,它並不屬於gof的經典著作《設計模式:可復用物件導向軟體的基礎》。
定義:定義乙個工廠類,它可以根據引數的不同返回不同類的例項,被建立的類的例項通常具有共同的父類。
客戶端可免除直接建立產品物件的職責**,無需知道具體產品類的類名就可以直接建立產品。
但是,當工廠負責建立的的物件較多,這勢必會加重這個工廠的業務邏輯,一旦不能工作,整個系統都將受到影響。當增加新的產品時就不得不修改工廠的邏輯,這樣不利於系統的擴充套件和維護。
生活小例子:
乙個工廠中要生產汽車,冰箱、電視、按摩椅、電腦、電飯煲,等等,(工廠負責建立的的物件較多)
汽車部,冰箱部、電視部、按摩椅部、電腦部,電飯煲部等都只負責生產產品,(具體產品類)
這個工廠所有的產品原料以及產品都必須從工廠大門進出,工廠大門僅可以讓貼有本廠商標的產品進出**(大門–抽象工廠)**
一旦大門出問題了,所有的產品都將不能進出。
如果工廠以後想要生產襪子,那麼,還需要賦予襪子進出工廠的權利,(增加新的產品時就不得不修改工廠的邏輯*)*
所以,簡單工廠模式 適用於以下幾種情況:
工廠類負責建立的物件較少,客戶端並不關心如何建立物件。
設計模式 工廠模式(簡單工廠)
一 簡單工廠 定義 簡單工廠模式 factory pattern 屬於類的創新型模式,又叫靜態工廠方法模式 static factorymethod pattern 是通過專門定義乙個類來負責建立其他類的例項,被建立的例項通常都具有共同的父類。特點 工廠類直接實現,乙個產品介面,乙個工廠類可以產生多...
設計模式(簡單工廠模式 工廠模式 抽象工廠模式)
當邏輯較為簡單時,可以直接建立對應的類。如下 include using namespace std class class banana class pear intmain 通過此 可以發現,使用者直接與客戶接觸,違背了dip 依賴倒轉 原則,過於麻煩,所以引出簡單工廠模式。include us...
設計模式 簡單工廠設計模式
請用任意一種物件導向語言實現計算器控制台程式,要求輸入兩個數和運算符號,得到結果。operation運算類 public class operation set public double numberb set public virtual double getresult 加減乘除類 using...