1. 程式人生 > >(結構型模式)COMPOSITE——組合模式

(結構型模式)COMPOSITE——組合模式

1、意圖

組合模式:將物件組合成樹形結構以表示“部分——整體”的層次結構。組合模式使得使用者對單個物件和組合物件的使用具有一致性

2、優缺點分析

GOOD:整體和部分可以被一致對待(如WORD中複製一個文字、一段文字、一篇文章都是一樣的操作)

使用者不用關心到底是處理一個葉結點還是處理一個組合元件,也就不用為定義組合而寫一些選擇判斷語句,即使用者可以一致的使用組合結構和單個物件。

適用情況當需求中是體現部分與整體層次的結構時,以及希望使用者可以忽略組合物件與單個物件的不同,統一地使用組合結構中的所有物件時,就應該考慮用組合模式

3、UML圖

K~7}3T5%@%4TN89B2QV_MIN

抽象基類:

1)Component:為組合中的物件宣告介面,聲明瞭類公有介面的預設行為,聲明瞭一個介面函式可以訪問Component的子元件。

介面函式:

1)Component::Operation:定義了各個元件共有的行為介面,由各個元件的具體實現

2)Component::Add:新增一個子元件

3)Component::Remove:刪除一個子元件

4)Component::GetChild:獲得子元件的指標

解析:組合模式是為了解決元件之間的遞迴組合提供瞭解決的辦法,它主要分為兩個派生類,其中的Leaf是葉子結點,也就是不再含有子元件的結點;而Composite是繼續含有子元件的類。