建立型設計模式

2021-07-22 13:06:31 字數 1316 閱讀 4545

建立型設計模式對類的建立例項化過程進行抽象,將物件的建立和物件的使用分離。

* 簡單工廠模式:使用頻率4星

* 工廠方法模式:使用頻率5星

* 抽象工廠模式:使用頻率5星

* 建造者模式:使用頻率2星

* 原型模式:使用頻率3星

* 單例模式:使用頻率4星

[toc]

簡單工廠模式將物件建立和物件使用相分離,降低了系統耦合度。

* 優點:無需知道具體類名,只要知道引數,即可建立某個類。引入xml配置檔案的話,都不用修改**。

* 缺點:工廠類是靜態方法,其承擔了太多職責,由於在該工廠中有具體的業務邏輯,更改業務時也要更改該工廠的**,故工廠類不符合開閉原則。(但產品類符合開閉原則)。

* 適用範圍:工廠類負責建立的模擬較少;建立類時不關心具體類名和具體建立細節。

簡單工廠模式的簡化:

在有些情況下工廠類可以由抽象產品角色扮演,乙個抽象產品類同時也是子類的工廠,也就是說把靜態工廠方法寫到抽象產品類中。

在工廠方法模式中,核心的工廠類不再負責所有產品的建立,而是將具體建立工作交給子類去做。

* 優點:使得新增新產品時不用修改原有工廠,只要新增新工廠和新產品即可,很好地符合了「開閉原則」。

* 缺點:新增新工廠和新產品時,增加了類的數量,對編譯、執行產生額外開銷。

需要建立多個不同產品(一系列)產品時。

* 優點:抽象工廠模式隔離了具體類的生成,使得客戶並不需要知道什麼被建立。由於這種隔離,更換乙個具體工廠就變得相對容易。所有的具體工廠都實現了抽象工廠中定義的那些公共介面,因此只需改變具體工廠的例項,就可以在某種程度上改變整個軟體系統的行為。另外,應用抽象工廠模式可以實現高內聚低耦合的設計目的,因此抽象工廠模式得到了廣泛的應用。增加新的具體工廠和產品族很方便,無須修改已有系統,符合「開閉原則」

* 缺點:在新增新的產品物件時,難以擴充套件抽象工廠來生產新種類的產品,這是因為在抽象工廠角色中規定了所有可能被建立的產品集合,要支援新種類的產品就意味著要對該介面進行擴充套件,而這將涉及到對抽象工廠角色及其所有子類的修改,顯然會帶來較大的不便。

開閉原則的傾斜性:增加新的工廠和產品族容易,增加新的產品等級結構麻煩

模式針對物件

特點簡單工廠

針對同一等級結構中的產品

對於增加新的產品,則較為麻煩

工廠方法

針對同一等級結構中的產品

支援增加任意產品

抽象工廠

針對不同等級結構中一系列產品

支援增加新的產品族;對於增加新的產品,則較為麻煩

建立型設計模式

設計模式分為總的來說分為三大類 建立型模式 五種,工廠方法模式 抽象工廠模式 單例模式 建造者模式 原型模式 結構型模式 七種,介面卡模式 裝飾器模式 模式 外觀模式 橋接模式 組合模式 享元模式 行為模式 十一種,策略模式 模板方法模式 觀察者模式 迭代子模式 責任鏈模式 命令模式 備忘錄模式 狀...

建立型 設計模式

單例 單例項,自我例項化,提供全域性訪問點 工廠 不同型別例項由不同工廠建立,當然也有通過乙個靜態方法建立一種例項或通過傳入引數決定生產的例項 這兩種很明顯不方便擴充套件,需修改 抽象工廠 考慮物件有不同維度 如車有型別和顏色 那麼工廠負責產生一類產品 如工廠產生紅車,白車,黑車 那麼型別上可以通過...

設計模式 建立型

原型模式 工廠模式分為三種更加細分的型別 靜態工廠 工廠方法 抽象工廠 靜態工廠 工廠方法的原理比較簡單,在實際的專案中也比較常用。而抽象工廠的原理稍微複雜點,在實際的專案中相對也不常用 了解即可 工廠模式的好處 1 將建立物件的事交給工廠,客戶端不用自己建立物件,明確了各個類的職責 2 如果有新的...