組合模式(Composite Pattern),又叫部分總體模式,是用於把一組類似的對象看成一個單一的對象。組合模式依據樹形結構來組合對象,用來表示部分以及總體層次。這種類型的設計模式屬於結構型模式,它建立了對象組的樹形結構。設計模式
這種模式建立了一個包含本身對象組的類。該類提供了修改相同對象組的方式。設計
意圖
將對象組合成樹形結構以表示"部分-總體"的層次結構。組合模式使得用戶對單個對象和組合對象的使用具備一致性。對象
主要解決
它在咱們樹型結構的問題中,模糊了簡單元素和複雜元素的概念,客戶程序能夠向處理簡單元素同樣來處理複雜元素,從而使得客戶程序與複雜元素的內部結構解耦。接口
如何解決
樹枝和葉子實現統一接口,樹枝內部組合該接口。it
關鍵代碼
樹枝內部組合該接口,而且含有內部屬性 List,裏面放 Component。List
缺點
在使用組合模式時,其葉子和樹枝的聲明都是實現類,而不是接口,違反了依賴倒置原則。程序
使用場景
部分、總體場景,如樹形菜單,文件、文件夾的管理。文件
注意事項
定義時爲具體類。樹形結構