C++设计模式新解二 建造者模式+工厂模式

本文介绍了建造者模式的角色,包括Builder、ConcreteBuilder、Director和Product,并通过代码示例展示了其如何创建复杂对象。建造者模式遵循开闭原则,有利于扩展且能将构建与表示分离。同时,文章探讨了建造者模式与工厂模式的区别,强调了两者在零部件创建和组装上的不同。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

定义:将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。

建造者模式的角色包括:

builder:给出一个抽象接口,以规范产品对象的各个组成成分的建造。这些接口规定,具体要实现复杂对象的哪些部分的创建,并不涉及具体的对象部件的创建。

ConcreteBuilder:实现Builder接口,根据不同的商业逻辑,具体化复杂对象的各部分创建。在建造过程完整后,提供产品的实例。

Director:调用具体建造者来创建复杂对象的各部分,在指导中不涉及具体产品的信息,只负责保证对象各部分完整创建或按某种顺序创建。

Product:要创建的复杂对象。

先看一段代码:

//Product类
class Product{
	vector<string> parts;
public:
	void Add(const string part)
	{
		parts.push_back(part);
	}
	
	void Show() const
	{
		for(int i = 0; i < parts.size(); ++i)
		{
			cout << parts[i] << endl;
		}
	}
};

class Builder
{
	public:
		virtual void BuildHead() = 0;
		virtual void BuildBody() = 0;
		virtual void BuildHand() = 0;
		virtual Product GetResult() = 0;
}

//具体胖人创建类
class FatPersonBuilder: public Builder{
private:
	Product product;
	
public:
	virtual void BuildHead()
	{
		product.Add("胖人人头");
	}
	
	virtual
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值