JAVA 設計模式 組合模式

2021-09-22 06:21:48 字數 1767 閱讀 6100

用途

組合模式 (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 物件組成的類結構;

它使得客戶端變得簡單;

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

Java設計模式 組合模式

組合模式 composite使用組合模式的場景 把部分和整體的關係用樹形結構來表示,從而使客戶端可以使用統一的方式處理部分物件和整體物件。開發中的應用場景 作業系統的資源管理器 gui中的容器層次圖 xml檔案解析 oa系統中,組織結構的處理 component abstractfile 抽象構件 ...

java設計模式之組合模式

組合模式 允許你將物件組合成樹形結構來表現 整體 部分 層次結構。組合能讓客戶以一致的方式處理個別物件以及物件組合。組合模式類圖 client 客戶使用component介面操作組合中的物件。component component為組合中的所有物件定義乙個介面,不管是組合還是節點,component...

java設計模式之組合模式

一 組合模式簡介 組合模式 將物件組合成樹形結構以表示 部分 整體 的層次結構。composite使得使用者對單個物件和組合物件的使用具有一致性。有時候又叫做部分 整體模式,它使我們樹型結構的問題中,模糊了簡單元素和複雜元素的概念,客戶程式可以向處理簡單元素一樣來處理複雜元素,從而使得客戶程式與複雜...