题目详情

阅读下列说明和Java代码,回答问题,将解答填入答题纸的对应栏内。

【说明】

某灯具厂商欲生产一个灯具遥控器,该遥控器具有7个可编程的插槽,每个插槽都有开关按钮,对应着一个不同的灯。利用该遥控器能够统一控制房间中该厂商所有品牌灯具的开关,现采用Command(命令)模式实现该遥控器的软件部分。Command模式的类图如下图所示。

初级程序员,章节练习,初级程序员押题

【Java代码】

【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);

}

}

正确答案及解析

正确答案
解析

(1)interface Command

(2)light.on()

(3)light.off()

(4)onCommands[slot]

(5)offCommands[slot]

(6)onCommands[slot].execute()

(7)offCommands[slot].execute()

你可能感兴趣的试题

单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.V(S2)和P(S4)
  • B.P(S2)和V(S4)
  • C.P(S2)和P(S4)
  • D.V(S2)和V(S4)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.V(S1)P(S2)和V(S3)
  • B.P(S1)V(S2)和V(S3)
  • C.V(S1)V(S2)和V(S3)
  • D.P(S1)P(S2)和V(S3)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.P(S4)和V(S4)V(S5)
  • B.V(S5)和P(S4)P(S5)
  • C.V(S3)和V(S4)V(S5)
  • D.P(S3)和P(S4)V(P5)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.P(S3)和V(S4)V(S5)
  • B.V(S3)和P(S4)P(S5)
  • C.P(S3)和P(S4)P(S5)
  • D.V(S3)和V(S4)V(S5)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.P(S2)和P(S4)
  • B.P(S2)和V(S4)
  • C.V(S2)和P(S4)
  • D.V(S2)和V(S4)
查看答案

相关题库更多 +