设计模式之构建器(Builder)C++实现

1、构建器提出

在软件功能开发中,有时面临“一个复杂对象”的创建工作,该对象的每个功能接口由于需求的变化,会使每个功能接口发生变化,但是该对象使用每个功能实现一个接口的流程是稳定的。构建器就是解决该类现象的。构建就是定义一个抽象类,然后将变化的每个功能接口定义为虚函数,稳定的流程定义为函数接口;其他有变化的类继承该抽象类。

2、需求描述

有一个产品需要经过设计、制作、包括、出售这几个步骤,才可以完成整个功能。每个产品都会有这几个步骤,但每个产品对应的具体细节是不一样的。

3、构建器模式代码实现

#include 
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;
}

代码执行结果如下:

设计模式之构建器(Builder)C++实现_第1张图片

你可能感兴趣的:(设计模式,C/C++语言,设计模式)