首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某灯具厂商欲生产一个灯具遥控器,该遥控器具有7个可编程的插槽,每个插槽都有开关按钮,对应着一个不同的灯。利用该遥控器能够统一控制房间中该厂商所有品牌灯具的开关,现采
阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某灯具厂商欲生产一个灯具遥控器,该遥控器具有7个可编程的插槽,每个插槽都有开关按钮,对应着一个不同的灯。利用该遥控器能够统一控制房间中该厂商所有品牌灯具的开关,现采
admin
2016-05-10
65
问题
阅读下列说明和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://www.kaotiyun.com/show/8dDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
阅读以下说明,回答问题1至问题3,将解答填入解答栏内。【说明】某单位有1个总部和6个分部,各个部门都有自己的局域网。该单位申请了6个C类IP地址202.115.10.0/24~202.115.15.0/24,其中总部与分部4共用一个C类地址。现计
IPSec工作在TCP/IP协议栈的(1),为TCP/IP通信提供访问控制、(2)、数据源验证、抗重放、(3)等多种安全服务。IPSec的两种工作模式分别是(4)和(5)。(1)~(5)备选答案:A.应用层B.网络层C.数据链
阅读以下说明,回答问题1至问题5,将解答填入对应的解答栏内。【说明】某公司内部服务器S1部署了重要的应用,该应用只允许特权终端PC1访问,如下图所示。为保证通信安全,需要在S1上配置相应的IPSec策略。综合考虑后,确定该IPSec策略如下。
阅读以下关于动态主机配置协议(DHCP)的说明,回答问题1至问题4。【说明】在小型网络中,IP地址的分配一般都采用静态方式,需要在每台计算机上手工配置网络参数,诸如IP地址、子网掩码、默认网关和DNS等。在大型网络中,采用DHCP完成基本网络配置
网络维护是网络管理中一项很重要的工作。由于网络协议和网络设备的复杂性,许多故障解决起来绝非像解决单机故障那么简单。网络故障的定位和排除,既需要长期的知识和经验积累,也需要一系列的软件和硬件工具,这样才能解决我们在学习或工作中遇到的网络故障。
VPN使用的隧道协议可以有那几类,分别有哪些协议?VPN路由器配置如下,请解释画线部分含义。Vpdn-group1(1)Accept-dialinprotocol12tpvirtual-template1terminate
在RAS上存在着两个RJ45的端口,分别为“Console”与“AUX”,请问这两个端口的用途是什么?(控制在100个字以内)在调用超级终端程序进行设备连接时,应该对设备的连接参数进行正确设置,参数主要包括串口数据传输率、数据位数、停止位数以及是否有奇
网络负载平衡(NetworkLoadBalancing)的核心是位于网络适配器驱动和(1)之间的WLBS.SYS的筛选器驱动。它采用一种(2),根据传入客户端的(3),以统计方式将其映射到群集主机。当发现到达的数据包时,所有主机同时执行这种映射,以快速
网络负载平衡(NetworkLoadBalancing)的核心是位于网络适配器驱动和(1)之间的WLBS.SYS的筛选器驱动。它采用一种(2),根据传入客户端的(3),以统计方式将其映射到群集主机。当发现到达的数据包时,所有主机同时执行这种映射,以快速
简述网络规划阶段需求分析的方法和解决的问题。(控制在100个字以内)在网络规划阶段“系统可行性分析和论证”的主要内容是什么?(控制在100个字以内)
随机试题
在知识产品的生产、开发活动中,创作行为或发明创造行为在本质上属于()。
下列哪项不是过敏性紫癜的病因
路基工作区在公路设计和施工中的主要作用是()。
在材料采购合同中,当供货方早于合同约定日期发出提货通知时,采购方可根据(),决定是否按通知的时间提前提货。
()的供电,要在最末一级配电箱处设置自动切换装置。
瑞士的首都是()。
下列对“天空赤热”的解释,最准确的二项是()。不属于迈克尔.萨曼将钠灯视为城市新光源理由的一项是()。
一网站评选网络之星,初赛选出七个候选人赵(Z)、钱(Q)、孙(S)、李(L)、吴(W)、陈(C)和董(D),在网上进行决赛,根据这七位候选人个人主页被点击的多少来给他们排名次。结果,每一个候选人的点击量都不相同。网友评选结果如下:Z得到的点击量比
洋务派兴办洋务事业的目的有()
•Readtheletterbelowaboutakindofserviceofferedbyacompany.•Inmostofthelines41-52thereisoneextraword.Itis
最新回复
(
0
)