設計模式 結構型別 組合

2021-07-14 14:44:00 字數 878 閱讀 9546

1、意圖

將物件組合成樹形結構以表示「部分-整體」的層次結構。composite使得使用者對單個物件和組合物件的使用具有一致性。

2、適用性

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

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

3、c++例項

// test.cpp : 定義控制台應用程式的入口點。

//#include "stdafx.h"

#include #include #include using namespace std;

class ccompany

virtual void add(ccompany c){}

virtual void remove(ccompany c){}

virtual void display(int depath){}

virtual void lineofduty(){}

};class cconcretecompany:public ccompany

virtual void add(ccompany* c)

virtual void remove(ccompany* c)

}} virtual void display(int depath) }

virtual void lineofduty() }

};class chrdepartment:public ccompany

virtual void add(ccompany c)

virtual void remove(ccompany c)

virtual void display(int depath)

設計模式 結構型 組合模式

將物件組合成樹形結構以表示 部分 整體 的層次結構。組合模式使得使用者對單個物件和組合物件的使用具有唯一性。對於樹形結構,當容器物件 如資料夾 的某乙個方法被呼叫時,將遍歷整個樹形結構,尋找也包含這個方法的成員物件 可以是容器物件,也可以是葉子物件 並呼叫執行,牽一而動百,其中使用了遞迴呼叫的機制來...

java結構型設計模式 組合模式

1 模式理解 組合模式就是把兩個物件放在乙個物件裡嘍,確切的說是乙個物件包含別的物件的集合,好比你一老闆可以有很多個員工,夠清除了吧 2 運用場景 單對多或者多對單的時候可以使用組合模式 3 示例 先建立員工物件 public class staff public string getname pu...

設計模式 結構型之組合模式

為了將具有樹形結構的特殊邏輯和通常邏輯解耦,將特殊邏輯抽離,並和通常邏輯受統一的介面約束,這樣的類結構叫組合模式 組合模式由三部分組成 統一介面 public inte ce compoisite 葉子結點 public class leaf implements compoisite overri...