設計模式之 2 簡單工廠模式

2021-09-30 02:11:14 字數 1007 閱讀 3385

.簡單工廠模式(****** factory)

簡單工廠模式是類的建立模式,又叫做靜態工程方法(static factory method)模式.

簡單工廠模式是由乙個工廠物件決定建立出哪一種產品類的例項.

簡單工廠模式是由乙個工廠類根據傳入的參量決定建立出哪一種產品類的例項.

簡單工程模式涉及到工廠角色,抽象產品角色以及具體產品角色等三個角色

(1)工廠類角色(creator):擔任這個角色的是工廠方法模式的核心,含有與應用緊密相

關的商業邏輯.工廠類在客戶端的直接呼叫下建立產品物件,它往往由乙個具體類實現

(2)抽象產品角色(product):擔任這個角色的類是由工程方法模式所建立的物件的父

類,或它們共同擁有的介面.抽象產品角色可以用乙個介面或抽象類實現.

(3)具體產品角色(concrete product)角色:工程方法模式所建立的任何物件都是這個

角色的例項,具體產品角色是由乙個具體類實現.

優點:簡單工廠模式的核心是工廠類.這個類含有必要的判斷邏輯,可以決定在什麼時候建立

哪乙個產品類的例項.而客戶端則可以免除直接建立產品物件的責任,而僅僅負責"消

費"產品.簡單工廠模式通過這種做法實現了對責任的分割.

缺點:(1)當產品類有複雜的多層次等級結構時,工廠類只有它自己.以不變應萬變,就是模式

的缺點.

(2)這個工廠類集中了所有的產品建立邏輯,形成乙個無所不知的全能類,有人把這種

類叫做上帝類(god class).如果這個全能類不能正常工作了,整個程式都會受到影響.

(3)將這麼多的邏輯集中放在乙個類裡面的另外乙個缺點是,當產品類有不同的介面種

類時,工廠類需要判斷在什麼時候建立某種產品.這種對時機的判斷和對哪一種具體產

品的判斷邏輯混合在一起,使得系統在將來進行功能擴充套件時較為困難.

(4)由於簡單工廠模式使用靜態方法作為工廠方法,而靜態方法無法由子類繼承,因此,

工程角色無法形成基於繼承的等級結構.

上述缺點在工廠方法模式中得到克服.

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

工廠類是指包含乙個專門用來建立其他物件的方法的類,工廠類在多型性程式設計實踐中是至關重要的,它允許動態的替換類,修改配置,通常會使應用程式更加 靈活,熟練掌握工廠模式高階php開發人員是很重要的。工廠模式通常用來返回符合類似介面的不同的類,工廠的一種常見用法就是建立多型的提供者,從而允許我們基於應用...

設計模式 工廠模式之簡單工廠模式

定義 由乙個工廠物件 工廠類 來指定建立某乙個產品類的例項。使用場景 客戶端只需傳入指定的引數即可,工廠類負責建立的物件較少 因為指定了傳入的引數 介面類 本想用iphone命名的,見諒 public inte ce phone實現介面類 public class huaweiphone imple...

設計模式2之 簡單工廠模式 工廠方法模式

a 簡單工廠模式概述 又叫靜態工廠方法模式,它定義乙個具體的工廠類負責建立一些類的例項 b 優點 客戶端不需要在負責物件的建立,從而明確了各個類的職責 c 缺點 這個靜態工廠類負責所有物件的建立,如果有新的物件增加,或者某些物件的建立方式不同,就需要不斷的修改工廠類,不利於後期的維護 d 案例演示 ...