建立型模式之簡單工廠模式

2021-07-10 22:23:17 字數 956 閱讀 7744

(複習用,不適合初學。複習用,不適合初學。複習用,不適合初學。)

1. 定義(****** factory pattern ):簡單工廠模式又稱為靜態(static)工廠模式。在簡單工廠模式中,可以根據引數的不同返回不同類的例項。簡單工廠模式專門定義乙個類來負責建立其他類的例項,被建立的例項通常都具有共同的父類。

2. 角色:

①factory(工廠角色)

工廠類是簡單工廠模式的核心,負責實現建立所有例項的內部邏輯。

②product(抽象產品角色)

抽象產品角色是簡單工廠模式所建立的所有物件的父類,負責描述所有例項共有的公共介面。

③concreteproduct(具體產品角色)

具體產品角色是簡單工廠模式的建立目標,所有建立的物件都充當這個角色的某個具體類的例項。

3. 解決方案(類圖)

4. 優缺點

①優點:

(1)工廠類含有必要的判斷邏輯,可以決定在什麼時候建立哪乙個產品類的例項。

(2)客戶端無需知道所建立具體產品類的類名,只需要知道具體產品類所對應的引數。

(3)通過引入配置檔案,可以在不修改任何客戶端**的情況下更換新的具體產品類,在一定程度上提高了系統的靈活性。

②缺點:

(1)工廠類集中了所有產品建立邏輯,違背單一職責原則。一旦不能正常工作,整個系統都收到影響。

(2)會增加系統中類的個數。

(3)系統擴充套件困難,一旦新增新產品就不得不修改工廠邏輯。違背開閉原則。

(4)靜態工廠方法造成工廠角色無法形成基於繼承的等級結構。

5. 適用環境

①工廠類負責建立的物件比較少,不會造成工廠方法中的業務邏輯太過複雜。

②客戶端只知道傳入工廠類的引數,對於如何建立物件不關心。

建立型模式之簡單工廠模式

寫在前面 閱讀本文之前你需要知道 1.連線基本的uml類圖結構 2.類關係 簡單工廠模式並不屬於gof的23個經典模式,但通常把它作為學習其他工廠模式的基礎,它的設計思想比較簡單 首先將需要建立的各種不同物件的相關 封裝到不同的類中,這些類稱為具體產品類,而將它們公共的 進行抽象和提取後封裝到乙個抽...

建立型模式 簡單工廠模式

在物件導向程式設計中,一般方法是用乙個new操作符產生乙個物件的例項。但是在一些情況下,用new操作符直接生成物件會帶來一些問題。首先,要使用new運算子建立乙個物件必須清楚所要建立的物件的類資訊,包括類名 建構函式等,而有時並不現實。其次許多態別的物件建立需要一系列的步驟,可能需要計算或取得物件的...

簡單工廠模式 建立型模式

1 描述 簡單工廠模式描述了乙個類,它擁有乙個包含大量條件語句的構建方法,可根據方法的引數來選擇對何種產品進行初始化並將其返回。簡單工廠通常沒有子類,但當從乙個簡單工廠中抽取出子類後,它看上去更像經典的工廠方法模式了。2 結構圖 3 c 實現 include include 產品介面中將宣告所有具體...