软件设计师案例分析当天每日一练试题地址:www.cnitpm.com/exam/ExamDayAL.aspx?t1=4
往期软件设计师每日一练试题汇总:www.cnitpm.com/class/27/e4_1.html
软件设计师案例分析每日一练试题(2024/3/20)在线测试:www.cnitpm.com/exam/ExamDayAL.aspx?t1=4&day=2024/3/20
点击查看:更多软件设计师习题与指导
软件设计师案例分析每日一练试题内容(2024/3/20)
从下列的2道试题(试题五至试题六)中任选1道解答。请在答题纸上的指定位置处将所选择试题的题号框涂黑。若多涂或者未涂题号框,则对题号最小的一道试题进行评分。
试题五(共15分)
阅读下列说明和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;
}
试题六(共15分)
阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
生成器(Builder)模式的意图是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。图6-1所示为其类图。

【Java代码】
importjava.util.*;
classProduct{
privateStringpartA;
privateStringpartB;
publicProduct(){}
publicvoidsetPartA(Strings){partA=s;}
publicvoidsetPartB(Strings){partB=s;}
}
interfaceBuilder{
public(1);
publicvoidbuildPartB();
public(2);
}
classConcreteBuilder1:implementsBuilder{
privateProductproduct;
publicConcreteBuilder1(){product=newProduct();}
publicvoidbuildPartA(){(3)("ComponentA");}
publicvoidbuildPartB(){(4)("ComponentB");}
publicProductgetResult(){returnproduct;}
}
classConcreteBuilder2implementsBuilder{
∥代码省略
}
classDirector{
privateBuilderbuilder;
publicDirector(Builderbuilder){this.builder=builder;}
publicvoidconstruct(){
(5)
∥代码省略
}
}
classTest{
publicstaticvoidmain(String[]args){
Directordirector1=newDirector(newConcreteBuilder1());
directorl.construct();
}
}
信管网试题答案与解析:www.cnitpm.com/st/3963712727.html
信管网考友试题答案分享:
信管网cnitpm630501712623:
1. void buildparta()
2. product getresult()
3. product.setparta()
4. product.setpartb()
5. builder.buildparta()
6.builder.buildpartb()
信管网cnitpm630501712623:
1.void buildparta()
2. product getresult()
3. product.setparta
4. product.setpartb
5. this.builder.getrresult()
信管网cnitpm599533235560:
(1) void buildparta() (2) product getresult() (3)product.setparta (4)product.setpartb (5) builder.buildparta()或
builder.buildpartb()
信管网cnitpm577448553863:
<br /><img src="http://pic.cnitpm.com/upload/2023/02/tbimg/02-19/1676816634.jpg" />
信管网cnitpm600760858161:
1:void buildparta()
2 product getresult()
3 product.setparta
4 product.setpartb
5 builder.buildparta();
builder.buildpartb();
信管网试题答案与解析:
www.cnitpm.com/st/3963712727.html