首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某灯具厂商欲生产一个灯具遥控器,该遥控器具有7个可编程的插槽,每个插槽都有开关按钮,对应着一个不同的灯。利用该遥控器能够统一控制房间中该厂商所有品牌灯具的开关,现采
阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某灯具厂商欲生产一个灯具遥控器,该遥控器具有7个可编程的插槽,每个插槽都有开关按钮,对应着一个不同的灯。利用该遥控器能够统一控制房间中该厂商所有品牌灯具的开关,现采
admin
2016-05-10
72
问题
阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
某灯具厂商欲生产一个灯具遥控器,该遥控器具有7个可编程的插槽,每个插槽都有开关按钮,对应着一个不同的灯。利用该遥控器能够统一控制房间中该厂商所有品牌灯具的开关,现采用Command(命令)模式实现该遥控器的软件部分。Command模式的类图如图6-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 offButtonWasPushed(int slot) {
(7) ;
}
}
clas s 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(livingRoom
Light);
LightOffCommand liVingROomLightOff=new LightOffCommand(livingRoom
Light);
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()
解析
本题考查命令(Command)模式的基本概念和应用。
命令模式把一个请求或者操作封装到一个对象中。命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。
在软件系统中,行为请求者与行为实现者之间通常呈现一种紧耦合的关系。但在某些场合,比如要对行为进行记录撤销重做事务等处理,这种无法抵御变化的紧耦合是不合适的。这种情况下,使用command模式将行为请求者与行为实现者进行解耦。
题目中给出了Command模式的类图,其中:
Command类为所有命令声明了一个接口。调用命令对象的execute()方法,就可以让接收者进行相关的动作。
ConcreteCommand类定义了动作和接收者之间的绑定关系。调用者只要调用execute()就可以发出请求,然后由ConcreteCommand调用接收者的一个或多个动作。
Invoker持有一个命令对象,并在某个时间点调用命令对象的execute()方法,将请求付诸实行。
Receiver知道如何进行必要的工作,实现这个请求。任何类都可以当接收者。
了解了Command模式的内涵之后,下面来看程序。
由于Command类的主要作用是为所有的ConcreteCommand定义统一的接口,在Java中通常采用接口(Interface)来实现,所以(1)处对应的代码为interface Command。
类LightOnCommand、LightOffCommand对应的就是模式中的ConcreteCommand。ConcreteCommand中execute()方法的代码在类图中已经给出,现在需要确定receiver是谁。类Light充当的是Receiver,其中定义了两种action:on和off所以(2)、(3)对应代码分别为light.on()和light.off()。
类RemoteControl对应的是模式中的Invoker,在该类中设置需要控制的命令对象。
(4)处对应的代码为onCommands[slot],设置“开灯”命令对象;(5)处对应的代码为offCommands[slot],设置“关灯”,命令对象。类RemoteControl中的方法onButtonWasPushed和oftButtonWasPushed,分别完成对开灯、关灯命令对象的execute方法的调用。所以(6)、(7)处分别对应代码onCommands[slot].execute()、offCommands[slot].execute()。
转载请注明原文地址:https://kaotiyun.com/show/8dDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
IPSec工作在TCP/IP协议栈的(1),为TCP/IP通信提供访问控制、(2)、数据源验证、抗重放、(3)等多种安全服务。IPSec的两种工作模式分别是(4)和(5)。(1)~(5)备选答案:A.应用层B.网络层C.数据链
阅读以下说明,回答问题1至问题5,将解答填入对应的解答栏内。【说明】某公司内部服务器S1部署了重要的应用,该应用只允许特权终端PC1访问,如下图所示。为保证通信安全,需要在S1上配置相应的IPSec策略。综合考虑后,确定该IPSec策略如下。
为了使DNS_Server1能正确解析本地Web站点的域名,需对DNS_Server1中的DNS服务进行配置。在图1所示的对话框中,新建的区域名称是(1);在图2所示的对话框中,添加的新建主机名称为(2),IP地址栏应填入(3)。如下图所示,配置允许
请在(1)~(4)空白处填写恰当的内容。DHCP的工作过程是:1)IP租用请求。DHCP客户机启动后,发出一个DHCPDISCOVER消息,其封包的源地址为(1),目标地址为(2)。2)IP租用提供。当DHCP服务器收到DHCPDI
阅读以下关于动态主机配置协议(DHCP)的说明,回答问题1至问题4。【说明】在小型网络中,IP地址的分配一般都采用静态方式,需要在每台计算机上手工配置网络参数,诸如IP地址、子网掩码、默认网关和DNS等。在大型网络中,采用DHCP完成基本网络配置
若采用电话线方式上网,并按要求在计算机连入网络的同时能通电话,连网速率高于500Kbps,可以选用哪种技术方案?其最高通信速率为多少?若采用电视铜缆接入计算机主干网络,用户端需增添什么设备?网络通信速率为多少?
阅读以下说明,回答【问题1】~【问题4】,将解答填入答题纸的对应栏内。【说明】设有A、B、C、D四台主机都处在同一个物理网络中,A主机的IP地址是192.155.12.112,B主机的IP地址是192.155.12.120,C主机的IP地址是19
简述网络规划阶段需求分析的方法和解决的问题。(控制在100个字以内)在需求分析过程中应对已有网络的现状及运行情况作调研,如果要在已有的网络上作新的网络建设规划,如何保护用户已有投资?(控制在100个字以内)
阅读以下关于交换机VTP协议配置的技术说明,根据要求回答问题1至问题4。【说明】利用VLAN技术可以把物理上连接的网络从逻辑上划分为多个不同的虚拟子网,可以对各个子网实施不同的管理策略。利用showvtpstatus命令在某台交换机的特权模式
随机试题
在Word2010中,若要制作一张不规则表格,应使用“插入”功能区中的“表格”按钮,打开“插入表格”对话框,选择___________命令。
A.蕲蛇B.防己C.独活D.威灵仙治疗急慢惊风、破伤风之抽搐痉挛,宜选用的药物是
D注册会计师负责对丁公司2011年度财务报表进行审计。在审计银行存款时,D注册会计师遇到下列事项,请代为作出正确的专业判断。丁公司银行存款日记账某账户余额为1625000元,在检查该账户银行存款余额调节表时,D注册会计师注意到以下事项:在途存款1000
注册会计师在对甲股份有限公司(以下简称“甲公司”)20×4年财务报表进行审计时,对其当年度发生的下列交易事项的会计处理提出疑问,希望能与甲公司财务部门讨论:(1)1月2日,甲公司自公开市场以2936.95万元购入乙公司于当日发行的一般公司债券30万张,该
【2016天津和平】有的学生看书时“一目十行”,有的学生一次只能读一句话,这反映了()的差异。
把下面的六个图形分为两类,使每一类图形都有各自的共同特征或规律,分类正确的一项是:
甲方将乙方诉至人民法院,要求乙方偿还借款期限为一年,且已到期的2万元借款以及借款利息。在诉讼中,甲方向法庭提交了借据作为乙方借款的证据。下列与之相关的说法正确的是:()
Wheredoesthisconversationmostprobablytakeplace?
DothefollowingstatementsagreewiththeinformationgiveninReadingPassage1?Inboxes5-13onyouranswersheet,writeT
AsanAlaskanfisherman,TimothyJune,54,usedtothinkthathewassafefromindustrialpollutants(污染物)athishomeinHaines—
最新回复
(
0
)