/*Product.h*/#ifndef PRODUCT_H#define PRODUCT_Hclass Product{public: Product(); ~Product();protected:private:};#endif
/*Product"Product.h"Product::Product(){}Product::~Product(){}
/*builder.h*/#ifndef Builder_h#define builder_h#include <string>Class product{ Public:Virtual~Builder();Virtual voidBuildparta (Const string&build_para) =0;Virtual voidBUILDPARTB (Const string&build_para) =0;Virtual voidBUILDPARTC (Const string&build_para) =0;VirtualProduct *getproduct () =0;protected:Builder();Private:};class ConcreteBuilder: Publicbuilder{ Public:ConcreteBuilder(); ~concretebuilder ();voidBuilderparta (Const string&build_para);voidBUILDERPARTB (Const string&build_para);voidBUILDERPARTC (Const string&build_para); Product *getproduct ();};#endif
/*builder.cpp*/#include "Builder.h"#include "Product.h"#include <iostream>Builder::builder () {}builder::~builder () {}concretebuilder::concretebuilder () {}concretebuilder::~concretebuilder () {}concretebuilder::buildparta (Const string&build_para) {STD::cout<<"Build_para"<<STD:: Endl;} CONCRETEBUILDER::BUILDPARTB (Const string&build_para) {STD::cout<<"Build_para"<<STD:: Endl;} CONCRETEBUILDER::BUILDPARTC (Const string&build_para) {STD::cout<<"Build_para"<<STD:: Endl;} ConcreteBuilder *concretebuilder::getproduct () {Buildparta ("Defined"); BUILDPARTB ("Defined"); BUILDPARTC ("Defined");return NewProduct ();}
/*director.h*/ Span class= "Hljs-preprocessor" > #ifndef director_h # define Director_h class Builderclass Director{public : Director (Builder *bld); ~director (); void Construct (); protected : private : Builder *bld_;}; #endif
/*Director.cpp*/ #include "Diretor.h" #include "Builder.h" director: :D irector (Builder *bld ) {Bld_=bld ; } director: : ~director () {}void director::construct () {Bld_->buildparta ( "Defined" ) BLD_->BUILDPARTB ( "Defined" ) BLD_->BUILDPARTC ( "Defined" ) }
/*main.cpp*/#include <iostream>#include "Product.h"#include "Builder.h"#include "Director.h"int main(){ Director *d=new Director(new ConcreteBuilder()); d->Construct(); return0;}
Builder pattern (builder mode)