三大工廠模式

2021-07-09 22:59:42 字數 1233 閱讀 4422

建立乙個單獨的類來實現例項化的過程,該過程被稱為工廠,建立的這個單獨的類即為工廠類。在簡單工廠模式中提出物件導向原則,本著三大特性:封裝、繼承、多型,從而實現可維護、可擴充套件、可復用。在書中,乙個簡單的計算器的例子充分展現了該模式。

通過uml圖,我們可以清晰地了解其類、物件之間的關係,具體如下:

(1)優點:簡單工廠模式秉承物件導向原則,實現了可維護、可復用、可擴充套件。

(2)缺點:簡單工廠模式不符合開放-封閉原則。每次需要擴充套件工廠類時,都需要修改工廠類,不符合開閉原則。

定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠方法使乙個類的例項化延遲到其子類。

(1)優點:工廠方法模式是在簡單工廠模式的基礎上而產生的,工廠方法模式遵循了開放-關閉原則,彌補了簡單工廠模式的不足。如果要擴充套件工廠類,可以不更改抽象工廠類,直接新增子類即可。

(2)缺點:工廠方法把簡單工廠的內部邏輯判斷移到了客戶端**中。如果要加新的功能,需要修改客戶端。

提供乙個建立一系列相關或相互依賴物件的介面,而無需制定他們具體的類。

(1)優點:a、易於交換產品系列,由於具體工廠類在乙個應用中只需要在初始化的時候出現一次,這就使得改變乙個應用的具體工廠變得非常容易,它只需要改變具體工廠即可使用不同的產品配置。將每次的改動降到最小,在每次更改資料庫訪問,我們只需要更改具體工廠就可以;b、讓具體的建立例項過程域客戶端分離,客戶端是通過他們的抽象介面操縱例項,產品的具體類名也被具體工廠的實現分離,不會出現在客戶**中。總之,抽象工廠模式將開放-封閉原則、依賴倒轉原則發揮到極致。

(2)缺點:a、如果需要增加新的功能,就上圖例子來說,如果需要再新增乙個iproject功能,就需要增加三個類:iproject、sqlseverproject、accessproject,同時還需要更改iproject對應的工廠,這樣的話就稍有麻煩;b、在實際應用中我們的客戶端程式類不會只有乙個,這樣我們在每乙個客戶端類的開始都需要宣告乙個新的資料庫工廠,這樣造成繁瑣和麻煩。

三大工廠模式的優缺點

簡單工廠模式,工廠方法模式和抽象工廠模式都是屬於建立型設計模式,這三種建立型模式都不需要知道具體類。我們掌握一種思想,就是在建立乙個物件時,需要把容易發生變化的地方給封裝起來,來控制變化 變化,封裝 以適應客戶的變動,專案的擴充套件。用這三種設計模式都可以實現,那究竟這三種設計模式有什麼異同呢?下面...

台積電三大工廠接連遭病毒感染

8月3日晚,台積電部分生產裝置相繼遭到病毒感染,導致台灣新竹科學園區的fab 12廠區 12寸晶圓廠 臺中科學園區的fab 15廠區 28nm和7nm生產基地 以及台南科學園區的fab 14廠區 16nm生產基地 三大生產基地相繼停擺。台積電作為全球最大的晶元代工廠,一直都是黑客重點關注的目標,每年...

Pythonner三大工具之PIP

感謝作者,感謝大神們 1 pip python的包管理工具,可以替代easy install 2 安裝pip 主要說ubuntu系統 2.1 包管理安裝軟體 sudo apt install python pip2.2 更新pip pip install u pip或者 pip install up...