天天看點

設計模式-組合模式-Composite? 組合模式-Composite

? 組合模式-Composite

源碼位址: https://github.com/mumushuiding/golang-design-pattern/tree/master/05_Composite

組合模式就像是一個? 樹形結構,基本機關是? 葉 對象,基本節點互相聚集在一起就是? 組合 對象

❓ 問題

客戶隻需要知道節點的抽象的 

設計模式-組合模式-Composite? 組合模式-Composite

 接口,樹形結構中的節點在工作時無論是單一還是組合的都會同樣處理

✔️ 解決方法

組合模式的基礎是定義一個抽象類 

設計模式-組合模式-Composite? 組合模式-Composite

Node,通過 接口 和契約确定它的行為.?葉類Leaf是Node的派生類,? 不能 聚集節點. 組合 對象Compoud是Node的派生類,可以? 聚集 多個Node節點.

⚡️類圖

設計模式-組合模式-Composite? 組合模式-Composite

?參與者

組合模式的參與者如下:

  • 設計模式-組合模式-Composite? 組合模式-Composite
    Node (節點).抽象類Node确定了派生類的接口和行為.
  • ? Leaf (葉).展現了樹形結構中的一個終結元素.
  • ? Compound (組合).它可以聚集其他節點.

?評價

?優點

優點:

  • 設計模式-組合模式-Composite? 組合模式-Composite
    葉群組合具有相同的接口,客戶可以 統一 處理
  • 設計模式-組合模式-Composite? 組合模式-Composite
    可以多層 嵌套

?缺點

缺點:

  • 過多地使用不同的葉類群組合類,設計和構造樹形結構就會條理不清.

繼續閱讀