整体-部分设计模式有助于聚合组件形成一种语义单元。一种聚合组件(整体),封装其构成组件(部分),组织它们之间的协作,并为其功能提供一个公共接口。直接访问一个部分是不可能的。
例子:
代码示例:
#include <iostream>
using namespace std;
class wheel
{
public:
wheel()
{
cout<<"new wheel"<<endl;
}
void run()
{
cout<<"wheel run"<<endl;
}
};
class engine
{
public:
engine()
{
cout<<"new engine"<<endl;
}
void run()
{
cout<<"engine run"<<endl;
}
};
class car
{
public:
car()
{
cout<<"new car"<<endl;
}
void drive()
{
cout<<"drive car"<<endl;
m_wheelone.run();
m_wheeltwo.run();
m_engine.run();
}
private:
wheel m_wheelone;
wheel m_wheeltwo;
engine m_engine;
};
int main(void)
{
car *benchi = new car();
benchi->drive();
return 0;
}
执行结果:
整体-部分模式的一般原则适用于三种关系型组织:
1.组装-部分关系,如示例。
2.容器-内容 关系,可以动态的添加或删除。
3.收集-成员关系,有助于相似对象成组。
文章为原创,转载请表明出处:http://blog.csdn.net/renyican
参考《面向模式的软件体系结构-卷1》