了解設計模式 9組合模式

2021-10-04 10:11:16 字數 1439 閱讀 4510

1.場景

把部分和整體的關係用樹形結構來表示,從而使客戶端可以使用統一的方式處理部分物件和整體物件。

2.組合模式核心

1)抽象構件(component)角色:定義了葉子和容器構件的共同點

2)葉子(leaf)構件角色:無子節點

3)容器(composite)構件角色:有容器特徵,可以包含子節點

3.**實現

//簡單展示

/** * 抽象元件

* @author administrator

* */

public inte***ce component

//葉子元件

inte***ce leaf extends component

//容器元件

inte***ce composite extends component

//示例

//抽象構建

public inte***ce abstractfile

class imagefile implements abstractfile

@override

public void killvirus() }

class textfile implements abstractfile

@override

public void killvirus()

}class videofile implements abstractfile

@override

public void killvirus()

}class folder implements abstractfile

public void add(abstractfile file)

public void remove(abstractfile file)

public abstractfile getchild(int index)

@override

public void killvirus()

} }//測試

4.應用場景1)作業系統的資源管理器

2)gui中的容器層次圖

3)xml檔案解析

4)oa系統中,組織結構的處理

5)junit單元測試框架

-底層設計是經典的組合模式:testcase(葉子)、testunite(容器)、test介面(抽象)

學習筆記 設計模式 9 組合模式

在上乙個設計模式中,我們講到了組合模式的例子。在那個例子中,我們利用迭代器將餐廳的選單 類a 類b 進行了改造,使其可以通用地進行列舉操作,現在我們的餐廳又遇到了乙個新的問題,在原來的選單中,老闆要求加上新的選單,而新的選單不是與原來的選單是並列的關係,而是包含的關係!新增的選單是原來選單的子項。可...

設計模式8 組合模式

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

《設計模式12 組合模式

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