c 設計模式之組合模式

2021-07-15 13:40:57 字數 1311 閱讀 9211

組合模式的結構圖:

兌現**:

#include #include #include "list"

using namespace std;

class ifile

;class file :public ifile

virtual void display()

private:

string m_name;

};//目錄節點

class dir :public ifile

virtual void display()

virtual int remove(ifile *ifile)

virtual list* getchild()

private:

string m_name;

list*m_list;

};void showtree(ifile*root,int level)

int i=0;

for(i=0;idisplay();

list*list1 = root->getchild();

if(list1!=null)//c盤下有東西可能是檔案也可能是目錄,可能都有

(*it)->display();

}else//說明是目錄

} }}void main()

{ dir *root = new dir("c:");

dir *dir1 = new dir("dir1");

dir *dir2 = new dir("dir2");

file *file1 = new file("file1");

file *file2 = new file("file2");

//往目錄c盤下新增檔案和目錄

root->add(dir1);

root->add(file1);

dir1->add(file2);

dir1->add(dir2);

//root->display();

//獲取root下的集合

list*list1 = root->getchild();

showtree(root,0);

cout執行結果:

C 設計模式之組合模式

組合模式,將物件組合成樹形結構以表示 部分 整體 的層次結構,組合模式使得使用者對單個物件和組合物件的使用具有一致性。在自然界中常常存在著許多樹形關係,例如公司的結構,有子公司,部門。又如檔案系統的結構,目錄下邊有目錄或者檔案,而目錄下的目錄又有目錄和檔案,如此遞迴下去。而組合模式就是為了處理這種樹...

C 設計模式之組合模式

拿大公尺時代來考慮這個問題是最合適不過的。將大公尺時代看作總公司,其他分校看成分公司,各個分公司都有自己的很多部門。英文 composite 將物件組合成樹形結構以表示 部分 整體 的層次結構。組合模式使得使用者對單個物件和組合物件的使用具有一致性。拿咱們處在的大公尺時代舉例子。大公尺時代有計算機和...

設計模式之組合模式(C )

組合模式,將物件組合成屬性結構以表示 部分 整體 的層次結構。組合模式使得使用者對單個物件和組合物件的使用具有一致性。其uml圖如下 乙個組織有很多子組織,而無論子組織是單獨乙個部門或是乙個分組織。該組織都希望把它們當成一樣的子組織來管理。舉個例子吧,就拿公司來說吧,乙個公司總部為了方便管理希望把分...