合成模式

合成模式

合成模式,結構型模式一種還可以稱為部分-整體模式 .

分類

合成模式種類分為透明式和安全式 , 主要區分在於樹枝構件中 , 管理方法是在抽象構件中定義 , 還是直接在樹枝構件中定義.

透明式 , 管理方法在抽象構件中定義 , 同時樹葉節點需要用平庸的方式實現管理方法 .

安全式 , 在樹枝構件中直接定義管理方法 , 這樣避免在樹葉構件中進行定義 .

組成

合成模式由抽象構件、樹枝構件、樹葉構件三部分組成 .

抽象構件 , 為樹結構中節點對象定義接口以及默認行為.

樹枝構件 , 擁有下一級樹葉節點對象 , 同時對樹葉節點對象進行管理 .

樹葉構件 , 沒有下一級節點對象 , 樹結構最末端 , 由該對象組成上一級的樹枝節點對象 .

用途

經常會出現有樹結構的情況 , 其中由單獨的對象或者單獨對象組成的合成對象組成 , 此時就需要利用一種方式來完成樹結構的構建工作 .

合成模式提供一個樹結構中所有對象的統一接口 , 規範樹中單獨對象和合成對象的構建過程 , 合成模式更像一個數據結構 .

方向性

合成模式 (樹結構) 的方向性 , 分為三類 , 向下、向上、雙向 .

向下性 , 一般情況結構為向下性 , 也就是父類節點中包含子節點的引用 , 而子節點並不知道它的父節點 .

向上性 , 每一個子節點中都包含一個父類節點的引用 , 同時父節點是不知道子節點的情況 .

雙向性 , 父節點和子節點都包含有對方的引用 , 當需要使用時 , 可以利用引用找到對方 .

優缺點

優點 : 增加新種類構建變得輕鬆 .

客戶端不需要知道當前使用的構建為樹枝節點還是樹葉節點 , 同時為一個構件接口 .

缺點 : 控制樹枝構建的類型就不太容易 .

繼承的方式完成新功能的增加變得困難 , 因為需要對繼承的所有對象進行新功能增加的實現工作

相關詞條

相關搜尋

熱門詞條

聯絡我們