组合模式(Composite):
将所有对象组织在一个树状结构之下,用来实现对象间部分—整体之间的关系,使得用户对单个对象和组合对象的使用具有一致性。
#include <list> #include <iostream> #include <string> using namespace std; class Component{ protected: string name; public: virtual void Add(Component *file)=0; virtual void Remove(Component *file)=0; virtual list <Component *>* Get()=0; }; class Leaf:public Component{ public: Leaf(string name) { this->name=name; } void Add(Component *file){ cout<<"Cannot add to a leaf"<<endl; } void Remove(Component *file) { cout<<"Cannot remove from a leaf"<<endl; } list <Component *> * Get() { return NULL; } }; class Composite:public Component{ private: list <Component *> p; public: Composite(string name){ this->name=name; } void Add(Component *file){ p.push_back(file); } void Remove(Component *file){ p.remove(file); } list <Component *> * Get() { this->name; } }; class manu:public Compsite{ //类似于dos命令下cd之类的进出命令使用 }; int main(void) { //略 return 0; }