Composite模式是一种结构性模式,顾名思义,他创建或者说管理的是一组对象,并且将这组对象,形成一种线性结构,而Composite模式则是将这组对象组成vector结构,
Composite模式图如下:
class Component
{
protected:
Component()
{;}
~Component()
{;}
public:
void Operation()
{;}
void Add()
{;}
void Remove
{;}
Component* GetChild(int)
{;}
};
class Composite:public Component
{
protected:
Leaf()
{;}
public:
~Leaf()
{;}
void Operation()
{
for(vector
::iterator itr=m_vector.begin();itr!=m_vector.end();itr++)
{
itr->Operation();
}
}
void Add(Component* tmp)
{
m_vector->push_back(tmp);
}
void Remove(Component*tmp)
{
m_vector->erase(tmp);
}
Component* GetChild(int a)
{
return m_vector[a];
}
private:
vector
m_vector;
};
class Leaf:public Component
{
public:
Leaf()
{;}
~Leaf()
{;}
void Operation()
{
cout<<"dasdas\n";
}
};
int main()
{
Component* tmp=new Leaf();
Component* hInstance=new Composite();
hInstance->Add(tmp);
hInstance->Operation();
Component* jk=hInstance->GetChild(0);
delete tmp;
delete hInstance;
}
这样一来就知道了,composite模式是将一种类管理起来,经过统一的一种方式进行管理