簡單工廠並不屬於23種設計模式,它更像是一種編碼風格。
定義:提供乙個建立物件例項的功能,而無須關心其具體實現。被建立例項的型別可以是介面、抽象類,也可以是具體的類。
非常簡單,直接上**:
public class foodfactory else if (name.equals("chicken")) else
}}
lanzhounoodle 和 huangmenchicken 都繼承自 food。
我們強調職責單一原則,乙個類只提供一種功能,foodfactory 的功能就是只要負責生產各種 food。
優點:(1)幫助封裝(簡單工廠雖然很簡單,但是很友好地幫助我們實現了元件的封裝,然後讓元件外部能真正面向介面程式設計)
(2)解耦(通過簡單工廠,實現了客戶端和具體實現類的解耦,如下面例子,客戶端根本就不知道具體是由誰來實現,也不知道如何實現,客戶端只是通過工廠獲取它需要的介面物件)。
缺點:(1)可能增加了客戶端的複雜度
如果通過客戶端的引數來選擇具體的實現類,那麼就必須讓客戶端能理解各個引數所代表的具體功能和含義,這樣會增加客戶端使用的難度,也部分暴露了內部實現,這種情況可以選用可配置的方式來實現。
(2)不方便擴充套件子工廠
私有化簡單工廠的構造方法,使用靜態方法來建立介面,也就不能通過寫簡單工廠類的子類來改變建立介面的方法的行為了。不過,通常情況下是不需要為簡單工廠建立子類的。
簡單工廠模式(建立型)
1.1定義 簡單工廠模式 factory pattern 定義乙個工廠類,它可以根據引數的不同返回不同類的例項,被建立的例項通常都具有共同的父類。簡單工廠模式定義的有關說明 1.2角色 簡單工廠模式的組成部分 1.3優點 1.4缺點 1.5適用環境 1.6教學例子 1 分析 在簡單工廠模式中用於建立...
設計模式 建立型 工廠 簡單工廠模式
動態決定哪個類被例項化,不必事先知道哪個類要被例項化!三 舉例 qq裡面常用發表情的 1 表情 b new smile 這種應該是很熟悉的建立方式 2 表情 b 表情工廠.createbiaoqing 表情內容 四 角色與結構 工廠類角色 creator bqfctory,在creat方法下建立產品...
設計模式 建立型 簡單工廠模式
建立型模式中工廠模式有三兄弟,先從簡單工廠講起。工廠模式中包含了產品與工廠兩個物件,其中產品是是乙個個具體的物件,而工廠負責生產這些產品。例如現在我們的需求是有兩個食品要在食品廠加工。兩個食品分別叫做麵包和巧克力,要在食品廠加工。通過需求分析出應該有如下幾個類,麵包類 巧克力類 食品加工廠類。由於麵...