軟件設(shè)計師案例分析當天每日一練試題地址:m.xiexiliangjiufa.com/exam/ExamDayAL.aspx?t1=4
往期軟件設(shè)計師每日一練試題匯總:m.xiexiliangjiufa.com/class/27/e4_1.html
軟件設(shè)計師案例分析每日一練試題(2024/10/8)在線測試:m.xiexiliangjiufa.com/exam/ExamDayAL.aspx?t1=4&day=2024/10/8
點擊查看:更多軟件設(shè)計師習題與指導
軟件設(shè)計師案例分析每日一練試題內(nèi)容(2024/10/8)
試題七
閱讀下列說明和Java代碼,將應填入 (n) 處的字句寫在對應欄內(nèi)。
【說明】
已知某企業(yè)欲開發(fā)一家用電器遙控系統(tǒng),即用戶使用一個遙控器即可控制某些家用電器的開與關(guān)。遙控器如下圖(a)所示。該遙控器共有4今按鈕,編號分別是0至3,按鈕0和2能夠遙控打開電器1和電器2,按鈕1和3則能遙控關(guān)閉電器1和電器2。由于遙控系統(tǒng)需要支持形式多樣的電器,因此,該系統(tǒng)的設(shè)計要求具有較高的擴展性?,F(xiàn)假設(shè)需要控制客廳電視和臥室電燈,對該遙控系統(tǒng)進行設(shè)計所得類圖如下圖(b)所示
圖(b)中,類RomoteController的方法onPrcssButton(int button)表示當遙控器按鍵按下時調(diào)用的方法,參數(shù)為按鍵的編號;command接口中on和off方法分別用于控制電器的開與關(guān);Light中turnLight(int degree)方法用于調(diào)整電燈燈光的強弱,參數(shù) degree值為0時表示關(guān)燈,值為100時表示開燈并且將燈光亮度調(diào)整到最大;TV中 sctChannel(int channel)方法表示設(shè)置電視播放的頻道,參數(shù)channel值為0時表示關(guān)閉電視,為1時表示開機并將頻道切換為第1頻道。
【Java代碼】
class Light{ //電燈類
public void trunLight(int degree){//調(diào)整燈光亮度,0表示關(guān)燈,100表示亮度最大}
};
class TV{//電視機類
public void setChannel(int channel){//0表示關(guān)機,1表示開機并切換到1頻道}
};
interface Command{//抽象命令類
void on();
void off();
};
class RemoteController{ //遙控器類
protected Command []commands=new Command[4];
//遙控器有4個按鈕,按照編號分別對應4個Command對象
public void onPressButton(int button){
//按鈕被按下時執(zhí)行命令對象中的命令
if(button % 2 == 0)commands[button]. on();
else commands[button]. off();
}
public void setCommand(int button, Command command){
(1) =command;//設(shè)置每個按鈕對應的命令對象
}
};
class LightCommand implements Command{ //電燈命令類
protected Light light; //指向要控制的電燈對象
public void on(){light. trunLight(100););
public void off(){light. (2) ;);
public LightCommand(Light light){this. light= light;);
};
class TVCommand implements Command{//電視機命令類
protected Tv tv; //指向要控制的電視機對象
public void on(){tv. (3) ;};
public void off(){tv. setChanne1(0);};
public TVCommand(TV tv){this. tv= tv;};
};
public class rs {
public static void main(String [] args){
Light light= new Light(); TV tv=new TV();//創(chuàng)建電燈和電視對象
LightCommand lightCommand= new LightCommand(light);
TVCommand tvCommand=new TVCommand(tv);
RemoteController remoteController=new RemoteController();
//設(shè)置按鈕和命令對象
remoteController. setCommand(0, (4) );
... //此處省略設(shè)置按鈕1、按鈕2和按鈕3的命令對象代碼
}
}
本題中,應用命令模式能夠有效讓類 (5) 和類 (6) 、類 (7) 之間的耦合性降至最小。
信管網(wǎng)考友試題答案分享:
信管網(wǎng)試題答案與解析:m.xiexiliangjiufa.com/exam/ExamDayAL.aspx?t1=4&day=2024/10/8信管網(wǎng)訂閱號
信管網(wǎng)視頻號
信管網(wǎng)抖音號
溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,信管網(wǎng)網(wǎng)站提供的以上信息僅供參考,如有異議,請以權(quán)威部門公布的內(nèi)容為準!
信管網(wǎng)致力于為廣大信管從業(yè)人員、愛好者、大學生提供專業(yè)、高質(zhì)量的課程和服務(wù),解決其考試證書、技能提升和就業(yè)的需求。
信管網(wǎng)軟考課程由信管網(wǎng)依托10年專業(yè)軟考教研傾力打造,教材和資料參編作者和資深講師坐鎮(zhèn),通過深研歷年考試出題規(guī)律與考試大綱,深挖核心知識與高頻考點,為學員考試保駕護航。面授、直播&錄播,多種班型靈活學習,滿足不同學員考證需求,降低課程學習難度,使學習效果事半功倍。
發(fā)表評論 查看完整評論 | |