(結構型模式)COMPOSITE——組合模式
阿新 • • 發佈:2019-02-15
1、意圖
組合模式:將物件組合成樹形結構以表示“部分——整體”的層次結構。組合模式使得使用者對單個物件和組合物件的使用具有一致性
2、優缺點分析
GOOD:整體和部分可以被一致對待(如WORD中複製一個文字、一段文字、一篇文章都是一樣的操作)
使用者不用關心到底是處理一個葉結點還是處理一個組合元件,也就不用為定義組合而寫一些選擇判斷語句,即使用者可以一致的使用組合結構和單個物件。
適用情況:當需求中是體現部分與整體層次的結構時,以及希望使用者可以忽略組合物件與單個物件的不同,統一地使用組合結構中的所有物件時,就應該考慮用組合模式
3、UML圖
抽象基類:
1)Component:為組合中的物件宣告介面,聲明瞭類公有介面的預設行為,聲明瞭一個介面函式可以訪問Component的子元件。
介面函式:
1)Component::Operation:定義了各個元件共有的行為介面,由各個元件的具體實現
2)Component::Add:新增一個子元件
3)Component::Remove:刪除一個子元件
4)Component::GetChild:獲得子元件的指標
解析:組合模式是為了解決元件之間的遞迴組合提供瞭解決的辦法,它主要分為兩個派生類,其中的Leaf是葉子結點,也就是不再含有子元件的結點;而Composite是繼續含有子元件的類。