1、构建器提出
在软件功能开发中,有时面临“一个复杂对象”的创建工作,该对象的每个功能接口由于需求的变化,会使每个功能接口发生变化,但是该对象使用每个功能实现一个接口的流程是稳定的。构建器就是解决该类现象的。构建就是定义一个抽象类,然后将变化的每个功能接口定义为虚函数,稳定的流程定义为函数接口;其他有变化的类继承该抽象类。
2、需求描述
有一个产品需要经过设计、制作、包括、出售这几个步骤,才可以完成整个功能。每个产品都会有这几个步骤,但每个产品对应的具体细节是不一样的。
3、构建器模式代码实现
#include <iostream>
class Product
{
public:void ProdctFinshed(){this->Design1();this->Make2();this->Package3();this->Sale4();}virtual ~Product(){};
protected:virtual void Design1()=0;virtual void Make2()=0;virtual void Package3()=0;virtual void Sale4()=0;
};class ProductA:public Product
{
protected:virtual void Design1(){std::cout << "ProductA Design1 "<< std::endl;};virtual void Make2(){std::cout << "ProductA Make2 "<< std::endl;};virtual void Package3(){std::cout << "ProductA Package3 "<< std::endl;};virtual void Sale4(){std::cout << "ProductA Sale4 "<< std::endl;};~ProductA(){};
};class ProductB:public Product
{
protected:virtual void Design1(){std::cout << "ProductB Design1 "<< std::endl;};virtual void Make2(){std::cout << "ProductB Make2 "<< std::endl;};virtual void Package3(){std::cout << "ProductB Package3 "<< std::endl;};virtual void Sale4(){std::cout << "ProductB Sale4 "<< std::endl;};~ProductB(){};
};int main()
{Product *pA = new ProductA();pA->ProdctFinshed();Product *pB = new ProductB();pB->ProdctFinshed();delete pA;pA = nullptr;delete pB;pB = nullptr;return 0;
}
代码执行结果如下: