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

一、意图:

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

二、类图:

三、组成元素:

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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值