設計模式 組合模式

2022-09-15 07:33:14 字數 1596 閱讀 4680

用途

組合模式 (component)

將物件組合成樹形結構以表示「部分-整體」的層次結構。

組合模式使得使用者對單個物件和組合物件的使用具有唯一性

組合模式是一種結構型模式

結構

圖-組合模式結構圖

component: 組合中的物件宣告介面,在適當的情況下,實現所有類共有介面的預設行為。宣告乙個介面用於訪問和管理 component 的子部件。

abstract class component 

public abstract void add(component c);

public abstract void remove(component c);

public abstract void display(int depth);

}leaf: 表示葉節點物件。葉子節點沒有子節點。

class leaf extends component 

@override

public void add(component c) 

@override

public void remove(component c) 

@override

public void display(int depth) 

}composite: 定義枝節點行為,用來儲存子部件,在 component 介面中實現與子部件相關的操作。例如 add 和 remove。

class composite extends component 

@override

public void add(component c) 

@override

public void remove(component c) 

@override

public void display(int depth) }}

client: 通過 component 介面操作結構中的物件。

public class compositepattern 

}應用場景

1、想要表示物件的部分-整體層次結構。

2、想要客戶端忽略組合物件與單個物件的差異,客戶端將統一地使用組合結構中的所有物件。

關於分級資料結構的乙個普遍性的例子是你每次使用電腦時所遇到的:檔案系統

檔案系統由目錄和檔案組成。每個目錄都可以裝內容。目錄的內容可以是檔案,也 可以是目錄。

按照這種方式,計算機的檔案系統就是以遞迴結構來組織的。如果你想要描述這樣的資料結構,那麼你可以使用組合模式。

要點

組合模式定義由 leaf 物件和 composite 物件組成的類結構;

它使得客戶端變得簡單;

它使得新增或刪除子部件變得很容易。

組合模式 設計模式 組合模式

1.需求分析 假設要給乙個大公司做辦公管理系統,公司有人力資源部 財務部等,然後公司在其他城市還有分公司,分公司也有自己的人力資源部 財務部等,要求總公司 分公司以及各部分成樹狀結構管理。要完成這麼乙個系統,為了有乙個更好的設計,方便開發的展開,就需要了解乙個設計模式 組合模式。2.定義 將物件組合...

設計模式 組合模式 組合模式使用

目錄 組合模式概括 組合模式使用場景 定義 將物件組合成樹形結構以表示 部分 整體 的層次結構 作用 使客戶端對單個物件和組合物件保持一致的處理方式 使用場景 1.希望客戶端可以忽略組合物件與單個物件的差異時 2.處理乙個樹形結構時 優點 清楚的定義分層次的複雜物件,表示物件的全部或部分層次 讓客戶...

設計模式 組合設計模式

組合模式 composite pattern 又稱部分整體模式,用於把一組相似的物件當做乙個單一的物件,組合模式依據樹形來組合物件,用來表示部分以及整體層次,為結構型設計模式,它建立來物件組的樹形結構。意圖 將物件組合成樹形結構以表示 部分 整體 的結構層次,組合模式使得使用者對單個物件和組合物件的...