三種工廠模式的優劣比較
3中工廠模式的比較
比較物件:簡單工廠模式
工廠方法模式
抽象工廠模式
概念解釋:
簡單工廠模式: 簡單工廠模式(Simple Factory Pattern)屬於類的創新型模式,又叫靜態工廠方法模式(Static FactoryMethod Pattern),是通過專門定義一個類來負責建立其他類的例項,被建立的例項通常都具有共同的父類。
工廠方法模式:工廠方法(Factory Method)模式的意義是定義一個建立產品物件的工廠介面,將實際建立工作推遲到子類當中。核心工廠類不再負責產品的建立,這樣核心類成為一個抽象工廠角色,僅負責具體工廠子類必須實現的介面,這樣進一步抽象化的好處是使得工廠方法模式可以使系統在不修改具體工廠角色的情況下引進新的產品。
抽象工廠模式:抽象工廠模式是所有形態的工廠模式中最為抽象和最具一般性的一種形態。抽象工廠模式是指當有多個抽象角色時,使用的一種工廠模式。抽象工廠模式可以向客戶端提供一個介面,使客戶端在不必指定產品的具體的情況下,建立多個產品族中的產品物件。根據LSP原則,任何接受父型別的地方,都應當能夠接受子型別。因此,實際上系統所需要的,僅僅是型別與這些抽象產品角色相同的一些例項,而不是這些抽象產品的例項。換言之,也就是這些抽象產品的具體子類的例項。工廠類負責建立抽象產品的具體子類的例項。
3種工廠模式之間的比較:
另外,由於簡單工廠模式使用靜態方法建立,這就導致靜態方法無法被繼承(All Languages)。
所以,簡單工廠模式適用於建立的物件比較少或簡單的情況。
但是工廠方法模式無法體現產品之間的關係,如果有兩個不同的產品需要建立,就需要兩個不同的工廠類,即使這兩個產品有某鍾必要的聯絡,也還是需要兩個不同的工廠類。
在抽象工廠模式中,一個具體的工廠類負責建立一系列相互關聯的產品,當一系列相互關聯的產品被設計到一個工廠類裡後,客戶端的呼叫變得非常簡單;如果要更換這一系列的產品,只需要更換一個工廠類即可,但零件之間的組裝如果放到客戶端,則客戶端變得非常臃腫,如果把零件之間的組裝放在工廠類裡,則又違反了工廠類單一職責的原則,使得工廠類既要負責物件的建立,又要負責產品的組裝。
相關文章
- 簡單工廠模式、工廠模式、抽象工廠模式比較模式抽象
- 三種工廠模式與策略模式模式
- 設計模式:三種工廠模式設計模式
- 談談三種工廠模式模式
- 設計模式之三種工廠模式設計模式
- 比較JS合併陣列的各種方法及其優劣JS陣列
- IPSec ×××與SSL ×××優劣比較
- 常見的三種工廠模式區別模式
- 深入理解Java的三種工廠模式Java模式
- 工廠模式的問題 比較淺顯高手莫嫌模式
- LVS三種模式配置及優點缺點比較模式
- java23種設計模式——三、工廠模式Java設計模式
- 工廠三兄弟之簡單工廠模式(三)模式
- 常見的三種工廠模式區別及單例模式模式單例
- 設計模式-建立型模式-工廠模式(工廠三兄弟) TypeScript設計模式TypeScript
- 工廠三兄弟之抽象工廠模式(二)抽象模式
- 工廠三兄弟之抽象工廠模式(一)抽象模式
- 工廠三兄弟之工廠方法模式(一)模式
- 設計模式(三)——工廠模式設計模式
- 一個例子穿插三種不同的工廠模式形態模式
- 工廠三兄弟之簡單工廠模式(二)模式
- 工廠三兄弟之簡單工廠模式(一)模式
- 設計模式之工廠模式(三)設計模式
- 23種設計模式(抽象工廠模式)設計模式抽象
- Mysql關於長連線短連線優劣比較MySql
- 設計模式 - 工廠三兄弟設計模式
- 設計模式(三):抽象工廠設計模式抽象
- 【設計模式之三工廠】設計模式
- 設計模式(三)抽象工廠方法模式設計模式抽象
- 簡單工廠模式—>工廠模式模式
- 工廠方法模式GoF23種設計模式之建立型模式之工廠方法模式Go設計模式
- 23種設計模式之工廠方法模式設計模式
- 23種設計模式之抽象工廠模式設計模式抽象
- 一篇搞定工廠模式【簡單工廠、工廠方法模式、抽象工廠模式】模式抽象
- 設計模式之工廠模式!深入解析簡單工廠模式,工廠方法模式和抽象工廠模式設計模式抽象
- 設計模式-簡單工廠、工廠方法模式、抽象工廠模式設計模式抽象
- 工廠模式之簡單工廠模式模式
- Java設計模式學習三-----工廠模式Java設計模式