設計模式之禪讀書筆記 建立類模式

2021-08-19 21:37:56 字數 1144 閱讀 1551

23種設計模式可以分為三大類.建立類,結構類,行為類.

建立類模式:(都能夠提供物件的建立和管理職責)

單例模式:保持在記憶體中只有乙個物件

工廠方法模式

抽象工廠模式

建造者模式

原型模式:通過複製的方式產生乙個新的物件

單例模式

定義:確保單例類只有乙個例項,而且自行例項化並向整個系統提供這個例項.

優點:缺點

工廠方法模式

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

優點:

擴充套件:

抽象工廠模式

定義:為建立一組相關或相互依賴的物件提供乙個介面,而且無須指定他們的具體類.

說明:抽象工廠模式是工廠方法模式的公升級版,在有多個業務品種、業務分類時,通過抽象工廠模式產生需要的物件是一種非常好的解決方式.

優點:缺點:

產品族擴充套件非常困難.例如:要增加乙個產品c,也就是說產品家族由原來的兩個增加到3個,這就要在抽象類abstractcreator增加乙個方法createproductc(),然後兩個實現類都要修改.所以嚴重違反了開閉原則.

使用場景:

乙個物件族(或是一組沒有任何關係的物件)都有相同的約束,則可以用抽象工廠模式.

注意事項:

產品組擴充套件比較困難(如:增加產品c.d...),產品等級是非常容易擴充套件的,增加乙個產品等級,只要增加乙個工廠類負責新增加出來的產品生產任務即可.也就是說橫向擴充套件容易,縱向擴充套件困難.

建造者模式/生成器模式

定義:將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示.

優點:使用場景:

原型模式(實現cloneable介面)

定義:用原型例項指定建立物件的種類,並通過拷貝這些原型建立新的物件..

優點:

《設計模式之禪》讀書筆記 策略模式

策略模式 strategy pattern 定義一組演算法,將每個演算法都封裝起來,並且使他們之間可以互換。對於策略模式來說了解清楚它三個角色的作用,基本就差不多了。策略模式的三個角色 它也叫做上下文角色,起承上啟下封裝作用,遮蔽高層模組對策略 演算法的直接訪問,封裝可能存在的變化。策略 演算法家族...

《設計模式之禪》讀書筆記 26 結構類模式比較

結構類模式包括介面卡模式 橋梁模式 組合模式 裝飾模式 門面模式 享元模式和 模式。它們都是通過組合類或物件產生更大結構以適應更高層次的邏輯需求。模式與裝飾模式 裝飾模式就是 模式的乙個特殊應用,兩者的共同點是都具有相同的介面,不同點則是 模式著重對 過程的控制,而裝飾模式則是對類的功能進行加強或減...

《設計模式之禪》讀書筆記 21 狀態模式

定義 當乙個物件內在狀態改變時允許其改變行為,這個物件看起來像改變了其類。類圖 state抽象狀態角色 介面或抽象類,負責物件狀態定義,並且封裝環境角色以實現狀態切換。concretestate具體狀態角色 每乙個具體狀態必須完成兩個職責 本狀態的行為管理以及趨向狀態處理,通俗地說,就是本狀態下要做...