1. 程式人生 > >【23種設計模式】之 組合模式(Composite Pattern)

【23種設計模式】之 組合模式(Composite Pattern)

需求:
(1)需要某種樹形結構,可以容納選單、子選單和選單項
(2)需要確定能夠在每個選單的各個項之間遊走,而且至少要像現在用迭代器一樣方便。
(3)需要能夠更有彈性地在選單項之間遊走。比方說:可能只需要遍歷甜點選單,或者可以遍歷餐廳的整個選單(包括甜點選單在內)

組合模型:允許你將物件組合成樹形結構來表現“整體/部分”層次結構。組合能讓客戶以一致的方式處理個別對象以及物件組合。

作用:這個模式能夠建立一個樹形結構,在同一個結構中處理巢狀選單和選單項組。

這裡寫圖片描述

Tips:

①將MenuItem(葉節點)看作成沒有孩子的節點。

②Menu裡既能新增Menu,也能新增MenuItem。

③MenuComponent裡包含MenuItem和Menu的所有方法。

④MenuItem和Menu只實現需要的方法,其他方法均丟擲UnsupportedOperationException()

這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述