阅读下列说明和c++代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】某灯具厂商欲生产一个灯
阅读下列说明和c++代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
某灯具厂商欲生产一个灯具遥控器,该遥控器具有7个可编程的插槽,每个插槽都
有开关按钮,对应着一个不同的灯。利用该遥控器能够统一控制房间中该厂商所有品牌
灯具的开关,现采用Command(命令)模式实现该遥控器的软件部分。Command模式
的类图如图5-1所示。
【c++代码】
}
本题考查命令(Command)模式的基本概念和应用。命令模式把一个请求或者操作封装到一个对象中。命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。在软件系统中,行为请求者与行为实现者之间通常呈现一种紧耦合的关系。但在某些场合,比如要对行为进行记录撤销重做事务等处理,这种无法抵御变化的紧耦合是不合适的。这种情况下,使用Command模式将行为请求者与行为实现者进行解耦。题目中给出了Command模式的类图,其中:Command类为所有命令声明了一个接口。调用命令对象的execute()方法,就可以让接收者进行相关的动作。ConcreteCommand类定义了动作和接收者之间的绑定关系。调用者只要调用execute()就可以发出请求,然后由ConcreteCommand调用接收者的一个或多个动作。Invoker持有一个命令对象,并在某个时间点调用命令对象的execute()方法,将请求付诸实行。Receiver知道如何进行必要的工作,实现这个请求。任何类都可以当接收者。了解了Command模式的内涵之后,下面来看程序。由于Command类的主要作用是为所有的ConcreteCommand定义统一的接口,在c++中通常采用抽象类来实现。C++的抽象类是至少具有一个纯虚拟函数的类。本题中的接口就是execute()方法,所以(1)处要求填写的是纯虚拟函数cxecute的定义方式,即vifrualvoidexecute()=0。类LightOnCammand、LightOfiCommand对应的就是模式中的ConcreteCommand;ConcreteCommand中execute()方法的代码在类图中已经给出,现在需要确定recelver是谁。类Light充当的是Receiver,其中定义了两种action:on和off.所以(2)、(3)对应代码分别为light->on()、light->off()。类RemoteControl对应的是模式中的Invoker,在该类中设置需要控制的命令对象。(4)处对应的代码为onCommands[slot],设置“开灯”命令对象;(5)处对应的代码为affcommands[slot].设置‘关灯”命令对象。类RemoteControl中的方法onButtanWasPushed和offlButtonWasPushed,分别完成对开灯、关灯命令对象的execute方法的调用,所以(6)、(7)处分别对应代码onCommands[slot]->execute()、offCommands[slot]->execute()。试题五参考答案(1)virtualvoidexecute()=0(2)light->on()(3)light->off()(4)onCommands[slot](5)offCommands[slot](6)onCommands[slot]->execute()(7)offCommands[slot]->execute()
请问谁会下面的题?红旗小学会议大厅中装了20盏灯,同学们把它们按顺序编为1号~20号灯,灯下各有一 数学 2020-06-15 …
某工厂生产的灯泡中有15是次品,实际检查时,只发现其中的45被剔除,另有120的正品也被误以为是次 其他 2020-06-29 …
为什么灯泡内壁好像附着这“尘埃”小红在帮妈妈打扫室内的灰尘时,发现玻璃变脏了,连灯泡也变黑了,于是 其他 2020-07-03 …
(2012•邵阳)某村为方便村民夜间出行,计划在村内公路旁安装如图所示的路灯,已知路灯灯臂AB的长为 其他 2020-11-12 …
汽车头灯的反光镜是凹面镜,装有两个灯丝,一个照近处,叫近光灯,一个照远处,叫远光灯,那么()A.近光 物理 2020-11-27 …
放映幻灯片的时候,银幕上的像太小,想让像变大些,可以采取的方法是[]A.将幻灯机移近银幕,同时使幻灯 其他 2020-12-08 …
在图示电路中,灯L1、L2的电阻分别为R1、R2,变阻器的最大电阻为R0,若有电流通过,灯就发光,假 物理 2020-12-20 …
两灯串联,一灯灯丝断了后搭接,其亮度如何变化两只白炽灯串联在一起,接入电路,恰中一只灯灯丝断了,后搭 物理 2020-12-20 …
一个小灯泡正常发光时,两端电压为U0=2.5V,通过的电流为I0=0.3A.(1)求小灯泡正常发光时 物理 2021-01-12 …
LED灯即半导体发光二极管,它可以直接把电能转化为光能.小明同学用10个LED灯(每个LED灯的额定 物理 2021-01-22 …