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;
}
代码执行结果如下:文章来源:https://www.toymoban.com/news/detail-653567.html
文章来源地址https://www.toymoban.com/news/detail-653567.html
到了这里,关于设计模式之构建器(Builder)C++实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!