未分类题
生成器(Builder)模式的意图是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。图5-1所示为其类图。

【C++代码】
#include<iostream>
#include<string>
using namespace std;
class Product{
private:
string partA,partB;
public:
Product( ){}
void setPartA(const string&s){PartA=s;}
void setPartB(const string&s){PartB=s;}
//其余代码省略
};
class Builder{
public:
(1);
virtual void buildPartB( )=0;
(2);
};
class ConcreteBuilder1:public Builder{
private:
Product*product;
public:
ConcreteBuilder1( ){product=new Product( );}
void buildPartA( ){(3)("Component A");}
void buildPartB( ){(4)("Component B");}
Product*getResult( ){return product;}
//其余代码省略
};
class ConcreteBuilder2:public Builder{
/*代码省略*/
};
class Director{
private:
Builder*builder;
public:
Director(Builder*pBuilder){builder=pBuilder;}
void construct( ){
(5);
//其余代码省略
}
//其余代码省略
};
int main( ){
Director*director1=new Director(new ConcreteBuilder1( ));
director1->construct( );
delete director1;
return 0;
}
【参考答案】
(1)virtual void buildPartA()=0
(2)virtual Product*getRes......
(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)