軟件設計師案例分析當天每日一練試題地址:m.xiexiliangjiufa.com/exam/ExamDayAL.aspx?t1=4
往期軟件設計師每日一練試題匯總:m.xiexiliangjiufa.com/class/27/e4_1.html
軟件設計師案例分析每日一練試題(2023/12/23)在線測試:m.xiexiliangjiufa.com/exam/ExamDayAL.aspx?t1=4&day=2023/12/23
點擊查看:更多軟件設計師習題與指導
軟件設計師案例分析每日一練試題內容(2023/12/23)
閱讀下列說明和Java代碼,將應填入 (n) 處的字句寫在答題紙的對應欄內。
【說明】
某燈具廠商欲生產(chǎn)一個燈具遙控器,該遙控器具有7個可編程的插槽,每個插槽都有開關燈具的開關,現(xiàn)采用Command(命令)模式實現(xiàn)該遙控器的軟件部分。Command模式的類圖如圖1-1所示。

【Java代碼】
class Light {
public Light() {}
public Light(String name) { /* 代碼省略 */ }
public void on() { /* 代碼省略 */ } // 開燈
public void off() { /* 代碼省略 */ } // 關燈
// 其余代碼省略
}
(1) {
public void execute();
}
class LightOnCommand implements Command { // 開燈命令
Light light;
public LightOnCommand(Light light) { this.light=light; }
public void execute() { (2) ; }
}
class LightOffCommand implements Command { // 關燈命令
Light light;
public LightOffCommand(Light light) { this.light=light; }
public void execute(){ (3) ; }
}
class RemoteControl { // 遙控器
Command[] onCommands=new Command[7];
Command[] offCommands=new Command[7];
public RemoteControl() { /* 代碼省略 */ }
public void setCommand(int slot, Command onCommand, Command offCommand) {
(4) =onCommand;
(5) =offCommand;
}
public void onButtonWasPushed(int slot) {
(6) ;
}
public void offlButtonWasPushed(int slot){
(7) ;
}
}
class RemoteLoader {
public static void main(String[] args) {
RemoteControl remoteControl=new RemoteControl();
Light livingRoomLight=new Light("Living Room");
Light kitchenLight=new Light("kitchen");
LightOnCommand livingRoomLightOn=new LightOnCommand(livingRoomLight);
LightOffCommand livingRoomLightOff=new LightOffCommand(livingRoomLight);
LightOnCommand kitchenLightOn=new LightOnCommand(kitchenLight);
LightOffCommand kitchenLightOff=new LightOffCommand(kitchenLight);
remoteControl.setCommand(0, livingRoomLightOn, livingRoomLightOff);
remoteControl.setCommand(1, kitchenLightOn, kitchenLightOff);
remoteControl.onButtonWasPushed(0);
remoteControl.offButtonWasPushed(0);
remoteControl.onButtonWasPushed(1);
remoteControl.offButtonWasPushed(1);
}
}
信管網(wǎng)試題答案與解析:m.xiexiliangjiufa.com/st/3815027966.html
信管網(wǎng)考友試題答案分享:
信管網(wǎng)cnitpm475547856609:
interface command<br>light.on()<br>light.off()<br>oncommands[slot]<br>offcommands[slot]<br>oncommands[slot].excute()<br>offcommands[slot].excute()<br>
信管網(wǎng)試題答案與解析:
m.xiexiliangjiufa.com/st/3815027966.html