导航
您当前的位置:首页 > 计算机 > 软件水平
问题:

[问答题] 阅读下列说明和Java代码,回答问题,将解答填入答题纸的对应栏内。【说明】某灯具厂商欲生产一个灯具遥控器,该遥控器具有7个可编程的插槽,每个插槽都有开关按钮,对应着一个不同的灯。利用该遥控器能够统一控制房间中该厂商所有品牌灯具的开关,现采用Command(命令)模式实现该遥控器的软件部分。Command模式的类图如下图所示。初级程序员,押题密卷,2021年程序员押题密卷2【Java代码】class Light { public Light() {} public Light(String name) { /* 代码省略 */ } public void on() { /* 代码省略 */ } // 开灯 public void off() { /* 代码省略 */ } // 关灯 // 其余代码省略} (1) { public void execute();} class LightOnCommandimplements Command { // 开灯命令 Light light; public LightOnCommand(Light light) {this.light=light; } public void execute() { (2) ; }}class LightOffCommandimplements 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, CommandonCommand, 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=newRemoteControl(); Light livingRoomLight=newLight("Living Room"); Light kitchenLight=newLight("kitchen"); LightOnCommand livingRoomLightOn=newLightOnCommand(livingRoomLight); LightOffCommand livingRoomLightOff=newLightOffCommand(livingRoomLight); LightOnCommand kitchenLightOn=newLightOnCommand(kitchenLight); LightOffCommand kitchenLightOff=newLightOffCommand(kitchenLight); remoteControl.setCommand(0,livingRoomLightOn, livingRoomLightOff); remoteControl.setCommand(1, kitchenLightOn,kitchenLightOff); remoteControl.onButtonWasPushed(0); remoteControl.offButtonWasPushed(0); remoteControl.onButtonWasPushed(1); remoteControl.offButtonWasPushed(1); }}
答案解析:

相关问题
关于我们 | 用户指南 | 版权声明 | 给我留言 | 联系我们 | 积分商城 | 答案求助 | 网站地图
Copyright © 2024 www.daanwo.com All Rights Reserved