生活中我們有一些這樣的功能,可以複製一個資料夾也可以一個一個的複製檔案,可以給文字中一個個文字改變顏色也可以對整段文字進行處理,也就是對部分與整體來說,可以被一致的對待。在設計模式中,我們稱之為“組合模式”。我們以簡單的學校結構來介紹。
工具/原料
能夠使用java程式設計的電腦一臺
方法/步驟
組合模式(Composite)定義:將物件組合成樹形結構以表示“整體-部分”的層次結構。組合模式使使用者對單個物件和組合物件的使用具有一致性。UML結構圖如下。(PS: 來自《大話設計模式》一書)
新建School抽象類,代表我們的Component角色。帶name屬性,代表學校名稱。四個方法:
- add(School school): 新增分校
- remove(School school): 移除分校
- display(): 展示自己
新增ConcreteSchool,具體學校類,繼承School類,代表樹枝節點。
新增ZhaoshengDepartment類,代表招生部,為葉子節點。
新增JiaodaoDepartment類,代表教導部,為葉子節點。
新增一個getSpecifiedDashes用於返回指定數量的減號,方便列印結構圖格式。
新增測試方法,執行檢視測試結果。
注意事項
喜歡我的文章,別忘了點贊+收藏!配合分享效果更佳哦~