? 組合模式-Composite
源碼位址: https://github.com/mumushuiding/golang-design-pattern/tree/master/05_Composite
組合模式就像是一個? 樹形結構,基本機關是? 葉 對象,基本節點互相聚集在一起就是? 組合 對象
❓ 問題
客戶隻需要知道節點的抽象的
接口,樹形結構中的節點在工作時無論是單一還是組合的都會同樣處理
✔️ 解決方法
組合模式的基礎是定義一個抽象類
Node,通過 接口 和契約确定它的行為.?葉類Leaf是Node的派生類,? 不能 聚集節點. 組合 對象Compoud是Node的派生類,可以? 聚集 多個Node節點.
⚡️類圖
?參與者
組合模式的參與者如下:
- Node (節點).抽象類Node确定了派生類的接口和行為.
- ? Leaf (葉).展現了樹形結構中的一個終結元素.
- ? Compound (組合).它可以聚集其他節點.
?評價
?優點
優點:
- 葉群組合具有相同的接口,客戶可以 統一 處理
- 可以多層 嵌套
?缺點
缺點:
- 過多地使用不同的葉類群組合類,設計和構造樹形結構就會條理不清.