您的位置:首页 > 编程语言 > C语言/C++

C++设计模式之二:Builder(生成器)

2012-05-28 14:33 302 查看
一、意图:

将一个复杂对象的构建与其表示分离,同样的构建过程可以创建不同的表示;

二、类图:



三、组成元素:

Builder:创建对象的抽象接口;

ConcreteBuilder:实现Builder接口并构建对象产品的各个部件;

Director:构建一个使用Builder的接口;

Product:对象产品;

四、实现代码:

#include "iostream"

using namespace std;

class Product
{
};

class Builder
{
public:
virtual void BuildPartA()=0;
virtual void BuildPartB()=0;
};

class ConcreteBuilder:public Builder
{
public:
void BuildPartA()
{
cout<<"BuildPartA"<<endl;
}
void BuildPartB()
{
cout<<"BuildPartB"<<endl;
}
Product* GetResult()
{
cout<<"Build Completed!"<<endl;
return new Product;
}
};

class Director
{
private:
Builder* m_builder;
public:
Director(Builder* builder)
{
m_builder=builder;
}
void Construct()
{
m_builder->BuildPartA();
m_builder->BuildPartB();
}
};

void main()
{
ConcreteBuilder* builder=new ConcreteBuilder();
Director* director=new Director(builder);

director->Construct();
Product* product=builder->GetResult();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: