結構類模式包括介面卡模式、橋梁模式、組合模式、裝飾模式、門面模式、享元模式和**模式。它們都是通過組合類或物件產生更大結構以適應更高層次的邏輯需求。
**模式與裝飾模式
裝飾模式就是**模式的乙個特殊應用,兩者的共同點是都具有相同的介面,不同點則是**模式著重對**過程的控制,而裝飾模式則是對類的功能進行加強或減弱,它著重類的功能變化。
**模式是把當前的行為或功能委託給其他物件執行,**類負責介面限定:是否可以呼叫真實角色,以及是否對傳送到真實角色的訊息進行變形處理,它不對被**類的功能進行任何處理,保證原汁原味的呼叫。
裝飾模式是在要保證介面不變的情況下加強類的功能,它保證的是被修飾的物件功能比原始物件豐富(當然,也可以減弱),但不做准入條件判斷和准入引數過濾,如是否可以執行類的功能,過濾輸入引數是否合規等。
裝飾模式與介面卡模式
裝飾模式與介面卡模式的功能相似:都是包裝作用,都是通過委託方式實現其功能。不同點是:裝飾模式包裝的是自己的兄弟類,隸屬於同乙個家族(相同介面或父類),介面卡模式則修飾非血緣關係類,把乙個非本家族的物件偽裝成本家族的物件,注意是偽裝,因此它的本質還是非相同介面的物件。
區別
設計模式之禪讀書筆記 建立類模式
23種設計模式可以分為三大類.建立類,結構類,行為類.建立類模式 都能夠提供物件的建立和管理職責 單例模式 保持在記憶體中只有乙個物件 工廠方法模式 抽象工廠模式 建造者模式 原型模式 通過複製的方式產生乙個新的物件 單例模式 定義 確保單例類只有乙個例項,而且自行例項化並向整個系統提供這個例項.優...
《設計模式之禪》讀書筆記 策略模式
策略模式 strategy pattern 定義一組演算法,將每個演算法都封裝起來,並且使他們之間可以互換。對於策略模式來說了解清楚它三個角色的作用,基本就差不多了。策略模式的三個角色 它也叫做上下文角色,起承上啟下封裝作用,遮蔽高層模組對策略 演算法的直接訪問,封裝可能存在的變化。策略 演算法家族...
《設計模式之禪》讀書筆記 21 狀態模式
定義 當乙個物件內在狀態改變時允許其改變行為,這個物件看起來像改變了其類。類圖 state抽象狀態角色 介面或抽象類,負責物件狀態定義,並且封裝環境角色以實現狀態切換。concretestate具體狀態角色 每乙個具體狀態必須完成兩個職責 本狀態的行為管理以及趨向狀態處理,通俗地說,就是本狀態下要做...