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

【Java代碼】
class Light {
  public Light() {}
  public Light(String name) { /* 代碼省略 */ }
  public void on()  { /* 代碼省略 */ }    // 開燈
  public void off()  { /* 代碼省略 */ }    // 關(guān)燈
  // 其余代碼省略
}  
    (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 { // 關(guān)燈命令
  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)試題答案與解析:www.jazzmuze.com/st/3815027966.html
信管網(wǎng)考友試題答案分享:
信管網(wǎng)試題答案與解析:
www.jazzmuze.com/st/3815027966.html