簡單工廠模式、工廠方法模式、抽象工廠模式都屬於建立型模式。這三個模式都是為了解決物件的建立而生。這三個工廠模式就像孿生兄弟一樣,總是讓人傻傻分不清楚。今天就依據個人理解對三個模式總結對比一下。
一、定義
模式定義
簡單工廠別名靜態工廠方法(static factory method
)模式。在簡單工廠模式中,可以根據引數的不同返回不同類的例項。
工廠方法定義乙個建立物件的介面,讓子類決定例項化哪乙個類。工廠方法使乙個類的例項化延遲到其子類。
抽象工廠提供乙個建立一系列相關或相互依賴物件的介面,而無需指定它們的具體類。
二、結構
三、角色關係
簡單工廠
工廠方法
抽象工廠
工廠角色
抽象產品角色
抽象產品
_ 具象產品
抽象工廠
_ 具象工廠
抽象產品
_ 具象產品
抽象工廠
_ 具象工廠
四、總結
簡單分析三種模式的結構圖以及所擁有的結構關係,我們不難看出三種模式的不同點:
簡單工廠
工廠方法
抽象工廠
建立過程由工廠內部直接根據不同條件建立
定義乙個抽象建立產品介面,將例項化過程延遲到子類
提供乙個建立一系列或者相關依賴物件的介面,有子類實現例項化
區別1.將客戶端判斷邏輯抽象到工廠內
2.用來生產同一等級結構中的任意產品,無法新增產品
1.判斷邏輯依舊在客戶端
2.用來生產同一等級結構中的固定產品,可任意增加新產品
1.判斷邏輯依舊在客戶端
2.用來生產不同產品族的全部產品,不可任意增加新產品,可新增任意產品族
以上三種工廠 方法在等級結構和產品族這兩個方向上的支援程度不同。所以要根據情況考慮應該使用哪種方法。
設計模式 工廠三兄弟
設計模式一共有23種,光工廠模式就有三種,剛開始學的時候還能分的清楚,到後面越來越像了,總的來說目的都是為了易維護,易拓展 手段是封裝繼承和多型 原則是上篇部落格寫到的六大原則。但是既然這是前人留下的寶貴經驗並且成文流傳下來我們就應該先站在巨人的肩膀上。下面是通過對比的學習來研究工廠模式。定義 通過...
設計模式 工廠三兄弟
當學完設計模式之後,進行總結時,發現有三個很相似的模式,分別是 簡單工廠 工廠方法和抽象工廠,查閱資料後,人們都俗稱 工廠三兄弟 經過對比後發現 他們是乙個層層遞進的過程,如果把抽象工廠比喻成大哥,那麼工廠方法就是二哥,簡單工廠就是三弟。他們都是建立型模式,其主要的功能都是幫助我們把物件的例項化部分...
設計模式 工廠三兄弟
今天主要總結一下工廠三兄弟即 簡單工廠模式 工廠方法模式 抽象工廠模式,看的多了之後有點亂,所以需要及時總結。簡單工廠 定義乙個用於生產物件的類,封裝生產不同的產品例項的細節,使建立物件的邏輯和客戶端分離,客戶端只需向這個類發起請求即可獲得對應的產品例項,而無需關心物件的建立過程。簡單工廠模式主要由...