設計模式 簡單工廠模式

2021-08-14 09:06:11 字數 1598 閱讀 3474

這種型別的設計模式屬於建立型模式。

意圖:定義乙個建立物件的介面,讓其子類自己決定例項化哪乙個工廠類,工廠模式使其建立過程延遲到子類進行。

主要解決:主要解決介面選擇的問題。

適用場景:我們明確地計畫不同條件下建立不同例項時。

例如:日誌記錄器:記錄可能記錄到本地硬碟、系統事件、遠端伺服器等,使用者可以選擇記錄日誌到什麼地方。

需求:形狀有很多種類,想根據客戶端的需要,建立不同的形狀子類。

工廠模式
我們想通過客戶端呼叫乙個工廠類的方法,並傳入相應的引數資訊,獲取相應的實現類。

//建立乙個介面

inte***ce

shape

//建立實現介面的實體類

class

rectangle

implements

shape

}class

square

implements

shape

}class

circle

implements

shape

}//建立乙個工廠,生成基於給定資訊的實體類的物件

class

shapefactory

if (shapetype.equalsignorecase("circle")) else

if (shapetype.equalsignorecase("rectangle")) else

if (shapetype.equalsignorecase("square"))

return

null;

}}//客戶端

public

class

client

}

不使用工廠模式
//建立乙個介面

...//建立實現介面的實體類

...//客戶端

public

class client

}

優點在工廠模式中,我們在建立物件時不會對客戶端暴露建立邏輯,並且是通過使用乙個共同的介面來指向新建立的物件。

缺點

由於工廠類集中了所有例項的建立邏輯,違反了高內聚責任分配原則,將全部建立邏輯集中到了乙個工廠類中;它所能建立的類只能是事先考慮到的,如果需要新增新的類,則就需要改變工廠類了。

當系統中的具體產品類不斷增多時候,可能會出現要求工廠類根據不同條件建立不同例項的需求.這種對條件的判斷和對具體產品型別的判斷交錯在一起,很難避免模組功能的蔓延,對系統的維護和擴充套件非常不利;

設計模式 工廠模式(簡單工廠)

一 簡單工廠 定義 簡單工廠模式 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...