组合模式是一个特征非常鲜明的设计模式,特点就是它的定义一点也不抽象!!!。
组合模式定义:将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式对单个对象(叶子节点)和组合对象(树节点)的使用具有一致性(送分题啊!同志们!一致性是啥,就是虚接口呗!)。
还用啥现实中的例子来说明,这就是妥妥的数据结构中的树形结构啊!人家定义都直接点明了。
UML结构图如下:
下面我用伪码来表述上面的例子。
//节点的定义
class Component
{
public:
virtual void Add(Component *cmpt) = 0; //添加节点
virtual void Remove(Component *cmpt) = 0; //删除节点
virtual void Operation() = 0;
virtual ~Component(){}
};
//树节点
class Composite : public Component //既继承
{
private: