C++ 设计模式之建造者模式

C++ 设计模式之建造者模式

简介

1、建造者模式(Builder)是一种创建型设计模式,主要用于处理在软件构建过程中复杂对象的创建问题。它将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。

2、建造者模式 (Builder)应用场景包括但不限于:
2.1、创建复杂对象 :当你想创建一个复杂对象(对象由多个部分构成,且对象的创建需要遵循特定的过程与步骤)时。
2.2、参数多 :当创建一个对象需要许多参数,并且大多数参数都有默认值时,使用建造者比使用重载的构造函数易于阅读和维护。
2.3、构造过程需要独立 :当构造过程必须独立于创建对象的类时,通过使用建造者模式,你可以使客户端不与对象构造的具体实现耦合。

3、建造者模式 (Builder)的构成
3.1、产品(Product):这是最终构建完成的对象,包含一些基本部件和组装方法。

class ProductA
{
   
public:
	std::vector<std::string> parts;

	void ListParts();
};

3.2、建造者(Builder):这是一个抽象接口,定义了创建产品各个部件的抽象方法。

class Builder
{
   
public:
	virtual ~Builder() {
   };
	virtual void ProducePartA() = 0;
};

3.3、具体建造者(ConcreteBuilder):实现了Builder接口,完成具体产品的构建。

class ConcreteBuilder : public Builder
{
   
private:
	ProductA* product;

public:
	ConcreteBuilder();
	~ConcreteBuilder();
	void Reset();
	void ProducePartA();
	ProductA* GetProduct();
};

3.4、指挥者(Director):负责安排已有模块的顺序,然后指导它们完成一个复杂对象(即产品)的构建工作。

class Director
{
   
private:
	Builder* builder;

public:
	void SetBuilder(Builder* builder);
	void BuildMinimalViableProduct();
	void BuildFullFeaturedProduct();
};

4、建造者模

你可能感兴趣的:(设计模式,c++,设计模式,建造者模式)