也叫合成模式,將物件組合成屬性機構以表示「部分-整體」的層次結構,使得使用者對單個物件和組合物件的使用具有一致性。
component:抽象構建角色(定義參加組個物件的共有方法和屬性,可以定義一些預設的行為或屬性)
public abstract class componet
}
composite:樹枝構件(樹枝物件,作用是組合樹枝節點和葉子節點形成乙個樹形結構)
public class composite extends componet
public void remove(componet componet)
public arraylistgetchildren()
}
leaf:葉子構件(葉子物件,為遍歷的最小單位)
public class leaf extends componet
}
場景類:
public class client
public static void display(composite composite)else}}
}
輸出結果:
componet dosomething
leaf dosomething
優點:高層模組呼叫簡單;節點自由增加
缺點:違背依賴倒置原則
設計模式筆記(十四) 組合模式
組合模式 composite 將物件組合成樹形結構以表示 部分 整體 的層次結構。組合模式使得使用者對單個物件和組合物件的使用具有一致性。透明方式 也就是說在component中宣告所有用來管理子物件的方法,其中包括add remove等。這樣實現component介面的所有子類都具備了add和re...
設計模式學習筆記 組合模式
定義 將物件組合成樹形結構以表示 部分 整體 的層次結構,使得使用者對單個物件和組合物件的使用具有一致性。組合模式主要用來處理一些具有 容器特徵 的物件,即他們在充當物件的同時,又可以作為容器包含其他的多個物件。也就是說組合模式表達的是一種樹形的結構,將資料結構中的 樹 用物件導向的方式表現出來了,...
設計模式學習筆記 組合模式
聽名字就像是把什麼東西組合在一起的設計模式,所以 組合模式就是將兩個類中的一些共同的方法抽象在一起然而,很多時候,一些類中的方法很明顯會不一樣,這裡,感覺 headfirst 上那個例子就挺好的,然後我做了下修改。public inte ce menuitem首先去設計乙個選單選項,一些和選單公有的...