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

[问答题] 某灯具厂商欲生产一个灯具遥控器,该遥控器具有7个可编程的插槽,每个插槽都有开关按钮,对应着一个不同的灯。利用该遥控器能够统一控制房间中该厂商所有品牌灯具的开关,现采用Command(命令)模式实现该遥控器的软件部分。Command模式的类图如图5-1所示。中级软件设计师,历年真题,2014年下半年(下午)《软件设计师》真题【C++代码】class Light{public:Light(string name){/*代码省略*/}void on(  ){/*代码省略*/}//开灯void off(  ){/*代码省略*/}//关灯};class Command{public:(1);};class LightOnCommand:public Command{//开灯命令private:Light*light;public:LightOnCommand(Light*light){this->light=light;}void execute(  ){(2);}};class LightOffCommand:public Command{//关灯命令private:Light*light;public:LightOffCommand(Light*light){this->light=light;}void execute(  ){(3);}};class RemoteControl{//遥控器private:Command*onCommands[7];Command*offCommands[7];public:RemoteControl(  ){/*代码省略*/}void setCommand(int slot,Command*onCommand,Command*offCommand){(4)=onCommand;(5)=offCommand;}void onButtonWasPushed(int slot){(6);}void offButtonWasPushed(int slot){(7);}};int main(  ){RemoteControl*remoteControl=new RemoteControl(  );Light*livingRoomLight=new Light("Living Room");Light*kitchenLight=new Light("kitchen");LightOnCommand*livingRoomLightOn=new LightOnCommand(livingRoomLight);LightOffCommand*livingRoomLightOff=newLightOffCommand(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);/*其余代码省略*/return 0;}
答案解析:

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