設計模式總結(創建型)

創建型模式抽象類實例化的過程。幫助一個系統獨立於如何創建、組合和表示它的那些對象。創建型模式都會將關於該系統使用哪些具體類的信息封裝起來。

允許用結構和功能差別很大的‘產品’對象配置一個系統。配置可以是靜態的,即在編譯時指定,也可以是動態的,就是運行時在指定。

創建型模式隱藏了類的實例是如何被創建和放在一起的,整個系統關於這些對象所知道的是由抽象類所定義的接口。這樣就有了很大的靈活性。

 單例模式:保證一個類僅有一個實例,並提供一個訪問它的全局訪問點,避免創建多個實例的可能。

優點:讓類自身負責保存它的唯一實例,這個類保證沒有其他實例可以創建,並且還提供了一個訪問該實例的方法。,這樣就可以嚴格地控制客戶訪問它。

 

 工廠方法模式:定義一個用於創建對象的接口,讓子類決定實例化哪一個類。

優點:工廠方法要定義一個用於創建對象的接口,讓子類決定實例化哪一個類。克服了簡單工廠違背開放-封閉原則的缺點,有保持了封裝對象創建過程的優點。運用工廠方法模式可以很好的讓父類與子類解耦。

不足:由於工廠類集中了所有產品創建的邏輯,如果不能正常工作的話會對系統造成很大的影響。如果增加新產品必須修改工廠角色的源碼。

抽象工廠模式:提供一個創建一系列相關或相互依賴對象的接口,而無需指定他們具體的類。

在抽象工廠模式中

1.改變一個應用的具體工廠變得非常容易,他只需要改變具體工廠即可使用不同的產品配置(開放封閉原則)

2.它讓具體的創建實例過程與客戶端分離,客戶端是通過他們的抽象接口操縱實例,產品的具體類名也被具體工廠的實現分離,不會出現在客戶端中

但是如果要增加類的話他需要修改三各類,是非常麻煩的,所以我們要用簡單工廠改進抽象工廠

反射:反射的時候我們將字符串寫成變量,可以通過變量去決定是哪個數據庫,所以就去除了switch判斷的麻煩,如果要增加數據庫需要本着開放—封閉原則、依賴倒轉、里氏轉換

原型模式:用原型實例指定創建對象的種類,並且通過拷貝這些原型創建新的對象。

其中分爲淺複製和深複製。

淺複製:

 克隆的對象對引用進行賦值,都是對同一個引用對象進行賦值,所以顯示出來的結果也是一樣的。

深複製:

深複製是將複製對象進行傳值,也就是真正意義上的複製。

建造者模式:將一個複雜對象的構建與他的表示分離,使得同樣的構建過程可以創建不同的表示。

構建一個子類,將父類所有的虛方法重寫實現繼承

在創建一個指揮者來控制建造的過程,隔離用戶與建造過程的聯繫

類圖中的聚合:不同的小人方法聚集到指揮者

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章