意图:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
示意图:
适用性:
当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时
当构造过程必须允许被构造的对象有不同的表示时
示例代码:
//部件类
class CPart
{
public:
CPart(void);
public:
~CPart(void);
public:
virtual void Build()=0;
virtual void
Display()=0;
};
//部件A
class CPartA:public CPart
{
public:
CPartA()
{
}
public:
~CPartA()
{
}
public:
virtual void Display()
{
_tprintf(_T("PartA/n"));
}
virtual void Build()
{
_tprintf(_T("Build PartA/n"));
}
};
//部件B
class
CPartB:public CPart
{
public:
CPartB()
{
}
public:
~CPartB()
{
}
public:
virtual void Display()
{
_tprintf(_T("PartB/n"));
}
virtual void Build()
{
_tprintf(_T("Build PartB/n"));
}
};