信管网案例分析

导航

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

2021年11月03日来源:信管网 作者:cnitpm

阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

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

【C++代码】#include#includeusingnamespacestd;

classProduct{private:

stringpartA,partB;public:

Product(){}

voidsetPartA(conststring&s){PartA=s;}

voidsetPartB(conststring&s){PartB=s;}

∥其余代码省略

};

classBuilder{public:

(1);

virtualvoidbuildPartB()=0;

(2);

};

classConcreteBuilder1:publicBuilder{private:

Product*product;public:

ConcreteBuilder1(){product=newProduct();}

voidbuildPartA(){(3)("ComponentA");}

voidbuildPartB(){(4)("ComponentB");}

Product*getResult(){returnproduct;}

∥其余代码省略

};

classConcreteBuilder2:publicBuilder{

/*代码省略*/

};

classDirector{private:

Builder*builder;public:

Director(Builder*pBuilder){builder*pBuilder;}

voidconstruct(){

(5)

∥其余代码省略

}

∥其余代码省略

};

intmain(){

Director*director1=newDirector(newConcreteBuilder1());

directorl->construct();

deletedirector1;

return0;

}

信管网参考答案:

(1) virtualvoidbuildPartA()=0

(2) virtualProduct*getResult()=0

(3) product->setPartA

(4) product->setPartB

(5) builder->buildPartA();

builder->buildPartB();

Product*p=builder->getResult();

查看解析:www.cnitpm.com/st/3963712727.html

相关推荐:

点击查看/下载:软件设计师历年真题汇总

点击查看:软件设计师在线培训课程免费试听课程

免费练习:软件设计师考试题库(模拟试题、章节练习、每日一练)

温馨提示:因考试政策、内容不断变化与调整,信管网提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!

分享至:
请使用浏览器的分享功能,把好文章分享给更多的人

信管网 - 信息系统项目管理专业网站

下载APP-在线学习

培训课程

0元畅享

考试题库

免费资料

APP下载