做库房推广哪个网站好,做女装的网站,汽车制造行业网站模板,做网站找什么公司工作1、构建器提出
在软件功能开发中#xff0c;有时面临“一个复杂对象”的创建工作#xff0c;该对象的每个功能接口由于需求的变化#xff0c;会使每个功能接口发生变化#xff0c;但是该对象使用每个功能实现一个接口的流程是稳定的。构建器就是解决该类现象的。构建就是定…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;
}代码执行结果如下