您的位置:首页 > 产品设计 > UI/UE

设计模式之建造者模式(Builder)

2013-07-21 00:47 453 查看
建造者模式原理:建造模式主要是用于产生对象的各个组成部分,而抽象工厂模式则用于产生一系列对象,建造者模式而且要求这些对象的组成部分有序。

代码如下:

#include <iostream>
using namespace std;

class Builder
{
public:
virtual void buildHead(){}
virtual void buildBody(){}
virtual void buildLeftArm(){}
virtual void buildRightArm(){}
virtual void buildLeftLeg(){}
virtual void buildRightLeg(){}
};
class BuilderFat:public Builder
{
public:
virtual void buildHead(){cout << "fat head" <<endl;}
virtual void buildBody(){cout << "fat Body" << endl;}
virtual void buildLeftArm(){cout << "fat Left Arm" <<endl;}
virtual void buildRightArm(){cout << "fat Right Arm" <<endl;}
virtual void buildLeftLeg(){cout << "fat Left Leg" <<endl;}
virtual void buildRightLeg(){cout << "fat Right leg" <<endl;}
};

class BuilerThin:public Builder
{
public:
virtual void buildHead(){cout << " thin head" <<endl;}
virtual void buildBody(){cout << "thin Body" << endl;}
virtual void buildLeftArm(){cout << "thin Left Arm" <<endl;}
virtual void buildRightArm(){cout << "thin Right Arm" <<endl;}
virtual void buildLeftLeg(){cout << "thin Left Leg" <<endl;}
virtual void buildRightLeg(){cout << "thin Right leg" <<endl;}
};

class Director
{
public:
Director(Builder *ptmp = NULL):pBuilder(ptmp)
{

}
void createPerson()
{
pBuilder->buildHead();
pBuilder->buildBody();
pBuilder->buildLeftArm();
pBuilder->buildRightArm();
pBuilder->buildRightArm();
pBuilder->buildLeftLeg();
pBuilder->buildRightLeg();
}
private:
Builder* pBuilder;
};

int main()
{
BuilderFat fat;
Director *pDirector = new Director(&fat);
pDirector->createPerson();
delete pDirector;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: