設計模式筆記 – 組合模式

分類

  • 結構型

模式的目的(定義)

  • 將多個對象組合成一個樹結構,在樹結構中,單個對象和對象組(包含多個子對象)均視作一個「節點」;單個對象和對象組之間的區別我們並不在乎
  • 通過遞歸,我們就可以對複雜集合中的所有元素以統一且簡單的方式進行處理
    • 單個對象的節點為「葉子節點」,在該節點完成操作後就會返回
    •  對象組節點為引用了包含多個子節點的節點,執行到該節點時,會遍歷其引用的所有子節點進行處理,當所有子節點返回後,該節點也隨之返回

使用場景例子

  • 當處理的對象具有一定的嵌套結構時,其實都可以用組合模式(實際上,將對象集合構建成一個樹的時候就是在應用組合模式)
    • 比如:支持分支的對話
      • 單個發言 及 某分支下的所有可能發言

類圖

參考書目

  • 《Head First Design Patterns》Eric Freeman, Elisabeth Robson, Kathy Sierra, Bert Bates