23種設計模式(組合模式)

2021-10-17 03:32:56 字數 1549 閱讀 9235

定義:有時又叫作部分-整體模式,它是一種將物件組合成樹狀的層次結構的模式,用來表示「部分-整體」的關係,使使用者對單個物件和組合物件具有一致的訪問性。

1.結構需求:
1.抽象構件(component)角色:它的主要作用是為樹葉構件和樹枝構件宣告公共介面,並實現它們的預設行為。在透明式的組合模式中抽象構件還宣告訪問和管理子類的介面;在安全式的組合模式中不宣告訪問和管理子類的介面,管理工作由樹枝構件完成。

2.樹葉構件(leaf)角色:是組合中的葉節點物件,它沒有子節點,用於實現抽象構件角色中 宣告的公共介面。

3.樹枝構件(composite)角色:是組合中的分支節點物件,它有子節點。它實現了抽象構件角色中宣告的介面,它的主要作用是儲存和管理子部件,通常包含

add()、remove()、getchild() 等方法

2. 元件
public

inte***ce

component

3.葉子
public

class

leaf

implements

component

@override

public

void

add(component c)

@override

public

void

remove

(component c)

@override

public component getchild

(int i)

@override

public

void

operation()

}

4 樹枝
public

class

composite

implements

component

public

void

remove

(component c)

public component getchild

(int i)

public

void

operation()

}}

1.應用:
1.想表示物件的部分-整體層次結構(樹形結構)

2.希望使用者忽略組合物件與單個物件的不同,使用者將統一地使用組合結構中的所有物件。

2.優點
1.組合模式使得客戶端**可以一致地處理單個物件和組合物件,無須關心自己處理的是單個物件,還是組合物件,這簡化了客戶端**;

2.更容易在組合體內加入新的物件,客戶端不會因為加入了新的物件而更改源**,滿足「開閉原則」;

3.缺點
1.設計較複雜,客戶端需要花更多時間理清類之間的層次關係;

2.不容易限制容器中的構件;

3.不容易用繼承的方法來增加構件的新功能;

23種設計模式 組合模式

組合模式 無需關係處理的單個物件,還是組合的物件容器,實現容器之間的解耦合。當有新部件時容易新增進來。1.可以想象成樹結構 根節點 最上層 public inte ce iroot2.分支節點 中間 public inte ce ibranch3.葉子節點 最下層 public inte ce il...

23種設計模式之組合模式

應用場景 組合模式核心 抽象元件角色 public inte ce component 葉子構件角色 inte ce leaf extends component 容器構件角色 inte ce composite extends component 使用組合模式,模擬防毒軟體的架構設計!抽象構建 p...

23種設計模式之組合模式

1.組合模式又叫部分整體模式,它建立了物件組的樹形結構,將物件組合成樹狀結構以表示 部分 整體 的層次關係 2.組合模式依據樹形結構來組合物件,用來表示部分以及整體的層次關係 3.組合模式屬於結構型模式 4.組合模式能讓使用者對單個物件和組合物件的訪問具有一致性 1.component 這是組合中物...