設計模式詳解(十) 組合模式

2021-10-24 18:28:09 字數 1099 閱讀 5535

設計出省、市、區機構的區域程式**。省市區結構如下

安徽省

--合肥市

----肥東縣

--蕪湖市

----三山區

浙江省--杭州市

----濱江區

--溫州市

----永嘉縣

江蘇省--鎮江市

----京口區

定義省市區/縣三個類,省包含市,市包含區/縣。

客戶端測試

public

static

void

main

(string[

] args)

輸出

安徽省

--合肥市

----肥東縣

----瑤海區

--蕪湖市

----三山區

明白了上面寫法的弊端,我們將這省市區看成一種型別,使用抽象類或介面聚合公共部分。

客戶端測試

public

static

void

main

(string[

] args)

輸出

安徽省

--合肥市

----肥東縣

----瑤海區

--蕪湖市

----三山區

組合模式將組合物件和葉子物件統一起來了,使得使用者在操作的時候無需區分型別,可以將操作統一化。

組合模式(composite pattern):將物件組合成樹狀的層次結構的模式,用來表示「部分-整體」的關係,使使用者對單個物件和組合物件具有一致的訪問性

組合模式一般包含如下角色

缺點

設計模式之十 組合模式

組合模式 將物件組合成熟型結構一表示 部分 整體 的層次結構。組合模式使得使用者對單個物件的組合物件的使用具有一致性。具體來講就是,樹根和樹枝和樹葉都是統一對待的。樹枝和樹葉繼承於樹根。什麼時候用組合模式?當需求中是體現部分與整體的層次結構式,以及你希望使用者可以忽略組合物件與單個物件的不同,統一使...

設計模式8 組合模式

組合模式首先想到的就是樹形結構,比如我們常用的檔案結構,請看windows的檔案結構 無論是檔案或者是資料夾,常用操作都是一致的,比如 複製 貼上 剪下 刪除 所佔空間大小。我們並沒有刻意的去分他是資料夾還是檔案。我們可以把資料夾看成是組合物件,把每乙個檔案看成是單個物件。組合模式模糊了這兩個概念,...

《設計模式12 組合模式

組合模式其實是乙個很形象的模式。它也被稱為部分整體模式。組合模式的結構就如同樹狀圖一樣。而樹就是枝幹 葉子的組合,組合模式可以形象的這麼理解。其實資料夾是乙個很好的組合模式的體現。乙個資料夾 樹根root 下可能有多個資料夾 枝幹trunk 可能是單個的檔案 樹葉leaf 而枝幹是可以繼續向下延伸的...