第十二章 將設計模式應用於模型

2021-08-26 20:48:00 字數 750 閱讀 4021

為什麼沒有第11章?

11章將了應用分析模式,沒咋看懂,東西也不多。如有需要可以看《分析模式》一書。

一、模式:strategy(也稱policy)

why?

領域模型包含一些並非用於結局技術問題的過程,將它們包含進來是因為它們處理問題領域具有實際的價值。當必須從多個過程中進行選擇時,選擇的複雜性加上過程本身的複雜性會讓局面失去控制。

how?

我們需要把過程中易變的部分提取到模型的乙個單獨的「策略中」。將規則和它所控制的行為分開。按照strategy設計模式來實現規則可替換的過程。策略物件的多個版本表示了完成過程的不同方式。strategy側重於替換不同演算法的能力,而當其作為領域模式時,其側重點則表示概念的能力,這裡的概念通常是指過程或者策略規則。

二、模式:composite(組合)

why?

當巢狀容器的關聯性沒有在模型中反映出來時,公共行為必然會在層次結構的每一層重複出現,而且巢狀也變得僵化。客戶必須通過不同的介面來處理層次結構中的不同層,儘管這些層在概念上沒有區別。通過層次結構來遞迴的收集資訊也變得非常複雜。

how?

定義乙個comosite的所有成員都包含在內的抽象模型。在容器上實現那些查詢資訊的方法時,這些方法返回由容器內容所彙總的資訊。而「葉」節點則基於它們自己的值來實現這些方法。客戶只需使用抽象型別,而無需區分「葉」和容器。

三、個人感悟

書中本章只介紹了兩種模式。但是實際上可用的模式不止這些。前幾章也提到了工廠方法模式等。設計模式和領域模型的設計可以結合來使用。

第十二章 Cach 設計模式 狀態模式

具體狀態類思考 當乙個物件的內在狀態改變時,允許改變其行為,這個物件看起來像是改變了其類。狀態模式主要解決當控制乙個物件狀態轉換的條件表示式過於複雜時的情況。把狀態的判斷邏輯轉移到表示不同狀態的一系列類當中。可以把複雜的判斷邏輯簡單化。程式設計師每個小時 12,13,17,21,是否下班 描述不同的...

第十二章 外觀模式 (Facade)

外觀模式又稱為門面模式。其定義為 為子系統中的一組介面提供乙個一致的介面,此模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。此模式是一種通過為多個複雜的子系統提供乙個一致的介面,而使這些子系統更加容易被訪問的模式。該模式對外有乙個統一介面,外部應用程式不用關心內部子系統的具體的細節,這樣...

第十二章集合的應用一

集合 容器 1.集 set 不能重複,不按特定方式排序,使用自己內部的乙個排序機制。2 列表 list 線性方式儲存,可以排序,可以在任意位置插入元素,可以重複。1.對映 map 成對的,關鍵字 數值對 通過 key查詢,有自己內部排列機制,key不能重複,值可以重複。集合類是用來存放某類物件的,不...