1.組合模式有時候又叫做部分-整體模式,是研究樹形結構的問題,它可以使客戶端將樹枝節點(符合元素,有子元素)和葉子節點(沒有子元素)一樣看待,減化了不同類型節點的差異性和複雜性。
2.使得用戶對單個對象和組合對象的使用具有一致性。
3.兩種分類
透明方式
樹枝節點和葉子節點都覆寫了基類的方法
優點:所有的構件類都有相同的接口,葉子節點對象與樹枝節點對象的區別起碼在接口層次上消失了,對客戶端是透明的。
缺點:不夠安全,當葉子節點的方法在客戶端調用運行時會出錯,這樣就要在葉子節點的方法裏捕獲這類錯誤。
安全方式
樹枝節點特有的方法下移至樹枝節點內部實現,這樣葉子節點就不需要實現這些對它自己毫無意義的方法
優點:安全,客戶端調用在編譯時就出錯,不會等到運行時。
缺點:不夠透明,因爲樹枝節點和葉子節點將具有不同的接口。
4..net中的運用
ObjectBuilder的程序集中一個叫定位器的東西。