普通工廠模式

2022-06-19 12:09:07 字數 1291 閱讀 8041

簡單工廠模式:繼承於基類的子類,建立過程交於乙個工廠來建立,通過賦予不同的建立標識來建立不同的子類

優點

1.隱藏了物件建立的細節,將產品的例項化推遲到子類中實現。

2.不用關心使用的是哪個產品,只需要知道用哪個工廠就行了,提供的型別也可以用比較便於識別的字串。

3.方便新增新的產品子類,每次只需要修改工廠類傳遞的型別值就行了。

4.遵循了依賴倒轉原則。

缺點

1.子類的型別差不多,使用的方法名都相同,如果模擬較多,而所有的類又必須要新增一種方法,則會是非常麻煩的事情。

或者是一種類另一種類有幾種方法不相同,客戶端無法知道是哪乙個子類,也就無法呼叫這幾個不相同的方法。

2.每新增乙個產品子類,都必須在工廠類中新增乙個判斷分支,這違背了開放-封閉原則。

每次新增乙個子類都必須在工廠類中新增乙個判斷分支,這樣違背了開放-封閉原則,因此,工廠模式就是為了解決這個問題而產生的。

既然每次都要判斷,那我就把這些判斷都生成乙個工廠子類,這樣,每次新增產品子類的時候,只需再新增乙個工廠子類就可以了。

這樣就完美的遵循了開放-封閉原則。

常用的場景

基本與簡單工廠模式一致,只不過是改進了簡單工廠模式中的開放-封閉原則的缺陷,使得模式更具有彈性。將例項化的過程推遲到子類中,由子類來決定例項化哪個。

優點

基本與簡單工廠模式一致,多的一點優點就是遵循了開放-封閉原則,使得模式的靈活性更強。

//

抽象產品類 製造類

class

make;//

具體產品類 製造火車類

class maketrain :public

make

};//

具體產品類 製造飛機類

class makeplane :public

make

};

//

抽象工廠類

class

factory;//

具體工廠類 製造火車的工廠

class trainfactory :public

factory

};//

具體工廠類 製造飛機的工廠

class planefactory :public

factory

};

int

main()

設計模式之普通工廠模式 Java實現版本

工廠模式是設計模式中非常容易理解的模式之一。簡單來說,工廠模式就是替代new操作的一種方式,比如我們去飯店要茶水,工廠就像是服務員,只要告訴服務員我要茶水,服務員就會把茶壺拿來,而不需要我們自己去拿茶水 好比於在main方法中直接new tea 接下來貼上例子,為了方便,把所有的 都寫在了乙個檔案中...

簡單工廠模式,工廠模式,抽象工廠模式

三種模式看了一天,記錄下自己的理解 headfirst,比薩店為例 1,簡單工廠模式 乙個具體的工廠類 pizzafactory 乙個抽象的產品類pizza,可以派生出多個具體的產品類 客戶 pizzastore類 工廠類 pizzafactory類關聯產品類pizza,工廠生產出不同型別的pizz...

簡單工廠模式 工廠模式 抽象工廠模式

簡單工廠模式 簡單工廠模式的最大優點在於工廠類中包含了必要的邏輯判斷,根據客戶端的選擇條件動態例項化相關類,對於客戶端來說,去除了與具體產品的依賴。但增加功能時,需增加 case 邏輯判斷分支條件,修改了原有的類,我們不但對擴充套件開發了,對修改也開放了,違背了開放 封閉原則。工廠方法模式,定義了乙...