信管网试题内容
信管网 导航

试卷名称:2014年下半年软件设计师考试下午真题试题(案例分析)

考试年份:2014年下半年

试题来源:《2014年下半年软件设计师考试下午真题试题(案例分析)》在线考试

试题内容

阅读下列说明和Java代码,将应填入 (n) 处的字句写在答题纸的对应栏内。
【说明】
某灯具厂商欲生产一个灯具遥控器,该遥控器具有7个可编程的插槽,每个插槽都有开关灯具的开关,现采用Command(命令)模式实现该遥控器的软件部分。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);
}
}
参考答案:暂时没有答案(仅供参考) 收藏

【解析】

普通会员无法查看试题解析。[开通试题解析服务]