首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某灯具厂商欲生产一个灯具遥控器,该遥控器具有7个可编程的插槽,每个插槽都有开关按钮,对应着一个不同的灯。利用该遥控器能够统一控制房间中该厂商所有品牌灯具的开关,现采
阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某灯具厂商欲生产一个灯具遥控器,该遥控器具有7个可编程的插槽,每个插槽都有开关按钮,对应着一个不同的灯。利用该遥控器能够统一控制房间中该厂商所有品牌灯具的开关,现采
admin
2016-05-10
36
问题
阅读下列说明和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://jikaoti.com/ti/Asi7FFFM
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
为了使DNS_Server1能正确解析本地Web站点的域名,需对DNS_Server1中的DNS服务进行配置。在图1所示的对话框中,新建的区域名称是(1);在图2所示的对话框中,添加的新建主机名称为(2),IP地址栏应填入(3)。在网络A的PCI中执
为了使DNS_Server1能正确解析本地Web站点的域名,需对DNS_Server1中的DNS服务进行配置。在图1所示的对话框中,新建的区域名称是(1);在图2所示的对话框中,添加的新建主机名称为(2),IP地址栏应填入(3)。如下图所示,配置允许
与ISDN相关的网络设备主要有TA、NT1、NT2、TE1、TE2等。在图2-9所示的网络拓扑结构中,路由器Router1和ISDN之间是否需要加入终端适配器(TA)?请用150字以内的文字简要说明理由。以下是在路由器Router1上的部分配置信息,结
VPN使用的隧道协议可以有那几类,分别有哪些协议?VPN路由器配置如下,请解释画线部分含义。Vpdn-group1(1)Accept-dialinprotocol12tpvirtual-template1terminate
网络负载平衡(NetworkLoadBalancing)的核心是位于网络适配器驱动和(1)之间的WLBS.SYS的筛选器驱动。它采用一种(2),根据传入客户端的(3),以统计方式将其映射到群集主机。当发现到达的数据包时,所有主机同时执行这种映射,以快速
请指出图1-12中(1)空缺处传输的是模拟信号,还是数字信号?在图1-12所示的网络拓扑图中,欲使内部网具有构造虚拟网的功能,图中(5)空缺处的交换机应具有哪些功能?
阅读以下有关网络设备安装与调试的叙述,分析设备配置文件,回答问题1、问题2和问题3。现以一台远程访问服务器(RemoteAccessServer,RAS)Cisco2509、RJ45为例来说明。第1步,准备安装与调试所需的设备,主要包
阅读以下应用L2TPv2协议实现VPN安全接入的技术说明,根据要求回答问题1至问题5。【说明】某企业应用L2TPv2协议部署企业的虚拟专用网(VPN),以方便企业的VIP用户及出差员工通过公共Internet安全地访问企业内部LAN资源,其网络拓
L2TP协议是一种基于(1)协议的二层隧道协议,它结合了Cisco的L2F和MicrosoftPPTP的优点。该协议报文在传输层封装(2)协议之上,为了保证传输的可靠性,L2TP协议对控制报文采取了(3)机制,并要求tunne1对端设备在隧道(tunne
随机试题
男性,57岁,油漆工,间歇性无痛性肉眼全程血尿1个月,伴尿频。尿中大量不规则血块,尿三杯试验均正常。膀胱镜检查见膀胱左侧壁有1cm×1cm×1cm大小肿块,浅红色,有蒂较长,病理检查为移行细胞癌,分化良好。肿瘤的临床分期及分级为
下列不是X线管管套功能的是
胎儿经阴道娩出最主要的力是
1988年,李某与村民委员会签订承包合同,承包了村里的100亩山地,约定每年上缴承包款2000元,承包期为20年。此后,李某在山地上种植了橘树,1995年后,李某每年从山地上获取的收益都达到5万元以上。这引起了村里一部分人的不满。1998年,在部分村民的要
通过合同结构图可以清晰地了解一个项目有哪些或将有哪些合同,以及了解各参与方的()。
王某为做生意向其朋友张某借款10000元,当时未约定利息。王某还款时,张某索要利息,王某以没有约定为由拒绝。根据《合同法》的规定,下列表述中,正确的是()。
()是出生后头半年婴儿认知发展的重要里程碑,也是手的真正触觉探索的开始。
Publicimagereferstohowacompanyisviewedbyitscustomers,suppliersandstockholders,bythefinancialcommunity,bythe
“学校课程中相关的真正中心,不是科学,不是文学,不是历史,不是地理,而是儿童本身的社会活动”这一观点反映的课程理论是()
[*]
最新回复
(
0
)