簡單工廠模式:繼承於基類的子類,建立過程交於乙個工廠來建立,通過賦予不同的建立標識來建立不同的子類
優點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
};
intmain()
設計模式之普通工廠模式 Java實現版本
工廠模式是設計模式中非常容易理解的模式之一。簡單來說,工廠模式就是替代new操作的一種方式,比如我們去飯店要茶水,工廠就像是服務員,只要告訴服務員我要茶水,服務員就會把茶壺拿來,而不需要我們自己去拿茶水 好比於在main方法中直接new tea 接下來貼上例子,為了方便,把所有的 都寫在了乙個檔案中...
簡單工廠模式,工廠模式,抽象工廠模式
三種模式看了一天,記錄下自己的理解 headfirst,比薩店為例 1,簡單工廠模式 乙個具體的工廠類 pizzafactory 乙個抽象的產品類pizza,可以派生出多個具體的產品類 客戶 pizzastore類 工廠類 pizzafactory類關聯產品類pizza,工廠生產出不同型別的pizz...
簡單工廠模式 工廠模式 抽象工廠模式
簡單工廠模式 簡單工廠模式的最大優點在於工廠類中包含了必要的邏輯判斷,根據客戶端的選擇條件動態例項化相關類,對於客戶端來說,去除了與具體產品的依賴。但增加功能時,需增加 case 邏輯判斷分支條件,修改了原有的類,我們不但對擴充套件開發了,對修改也開放了,違背了開放 封閉原則。工廠方法模式,定義了乙...