設計模式實戰之組合模式

2021-10-13 07:33:33 字數 1921 閱讀 7519

三、組合模式的應用場景

抽象構件(component)角色:它的主要作用是為樹葉構件和樹枝構件宣告公共介面,並實現它們的預設行為。在透明式的組合模式中抽象構件還宣告訪問和管理子類的介面;在安全式的組合模式中不宣告訪問和管理子類的介面,管理工作由樹枝構件完成。(總的抽象類或介面,定義一些通用的方法,比如新增、刪除)

樹葉構件(leaf)角色:是組合中的葉節點物件,它沒有子節點,用於繼承或實現抽象構件。

樹枝構件(composite)角色 / 中間構件:是組合中的分支節點物件,它有子節點,用於繼承和實現抽象構件。它的主要作用是儲存和管理子部件,通常包含 add()、remove()、getchild() 等方法。

為了偷懶就寫在乙個檔案上了

/**

* @describe: 場景描述:超時購物收銀

* 購買了兩雙鞋,1塊麵包,拿了乙個購物袋

* @author:zqm

*/public

class

compositepatterndemo2

/** * 抽象構件(component)角色

* 介面功能:計算**和展示明細

*/inte***ce

articles

/** * 產品抽象類,包含屬性單價,數量以及名稱

*/static

class

goods

implements

articles

public

goods

(float price,

int num, string name)

@override

public

float

calculation()

@override

public

void

show()

public

float

getprice()

public

void

setprice

(float price)

public

intgetnum()

public

void

setnum

(int num)

public string getname()

public

void

setname

(string name)

}/**

* 購物車抽象類 個功能:新增物品/移除物品

1. 在需要表示乙個物件整體與部分的層次結構的場合。2. 要求對使用者隱藏組合物件與單個物件的不同,使用者可以用統一的介面使用組合結構中的所有物件的場合。

設計模式之組合模式

組合模式 以 整體 部分 的層次結構,將物件以樹型結構組合起來。如下圖所示 組合模式首先得定義乙個用來管理和訪問部件們的抽象類。public abstract class equipment 再建立乙個組合體的部件 class element equipment 現在我們再來定義乙個組合體,也就是組...

設計模式之 組合模式

有時候我們需要維護一些物件,這些物件具有一定的層次結構,它們之間雖然差異很大,但在使用的時候我們希望能構一致的對待,比如windows控制項,繪圖中的圖形等,這個時候我們就可以採用組合模式來進行管理。組合模式就是將要管理的物件按樹型結構來進行組織,表示成一種 整體 部分 的層次結構,使得使用者對單個...

設計模式之組合模式

組合模式 將物件組合成樹形結構以表示 部分 整體 的層次結構。使得使用者對單個物件和組合物件的使用具有一致性。適用性 想表示物件的部分 整體層次結構,希望使用者忽略組合物件與單個物件的不同,使用者將統一地使用組合結構中的所有物件。典型表示結構圖 宣告組合中的物件宣告介面 在適當的情況下,實現所有類共...