专业软件设计师网站|培训机构|服务商(加客服微信:cnitpm或QQ:800184589进软件设计师学霸群)

软题库 培训课程
当前位置:信管网 >> 软件设计师 >> 案例分析 >> 文章内容
生成器(Builder)模式的意图是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
来源:信管网 2021年11月03日 【所有评论 分享到微信

阅读下列说明和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

相关推荐:

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

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

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

扫码关注公众号

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

信管网致力于为广大信管从业人员、爱好者、大学生提供专业、高质量的课程和服务,解决其考试证书、技能提升和就业的需求。

信管网软考课程由信管网依托10年专业软考教研倾力打造,官方教材参编作者和资深讲师坐镇,通过深研历年考试出题规律与考试大纲,深挖核心知识与高频考点,为学员考试保驾护航。面授、直播&录播,多种班型灵活学习,满足不同学员考证需求,降低课程学习难度,使学习效果事半功倍。

相关内容

发表评论  查看完整评论  

推荐文章