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

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

代码执行结果如下:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值