未分类题

生成器(Builder)模式的意图是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。图5-1所示为其类图。
中级软件设计师,历年真题,2018年上半年(下午)《软件设计师》真题
【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......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)
热门 试题