軟件設(shè)計師案例分析當(dāng)天每日一練試題地址:m.xiexiliangjiufa.com/exam/ExamDayAL.aspx?t1=4
往期軟件設(shè)計師每日一練試題匯總:m.xiexiliangjiufa.com/class/27/e4_1.html
軟件設(shè)計師案例分析每日一練試題(2022/8/13)在線測試:m.xiexiliangjiufa.com/exam/ExamDayAL.aspx?t1=4&day=2022/8/13
點擊查看:更多軟件設(shè)計師習(xí)題與指導(dǎo)
軟件設(shè)計師案例分析每日一練試題內(nèi)容(2022/8/13)
從下列的2道試題(試題五至試題六)中任選1道解答。請在答題紙上的指定位置處將所選擇試題的題號框涂黑。若多涂或者未涂題號框,則對題號最小的一道試題進行評分。
試題五(共15分)
閱讀下列說明和C++代碼,將應(yīng)填入(n)處的字句寫在答題紙的對應(yīng)欄內(nèi)。
【說明】
生成器(Builder)模式的意圖是將一個復(fù)雜對象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示。圖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代碼,將應(yīng)填入(n)處的字句寫在答題紙的對應(yīng)欄內(nèi)。
【說明】
生成器(Builder)模式的意圖是將一個復(fù)雜對象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示。圖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();
}
}
信管網(wǎng)試題答案與解析:m.xiexiliangjiufa.com/st/3963712727.html
信管網(wǎng)考友試題答案分享:
信管網(wǎng)試題答案與解析:
m.xiexiliangjiufa.com/st/3963712727.html