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

来源:互联网 发布:excel去除相同数据 编辑:程序博客网 时间:2024/06/01 09:48

一、意图:

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

二、类图:

三、组成元素:

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();}



原创粉丝点击