首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
某大型商场内安装了多个简易的纸巾售卖机,自动出售2元钱一包的纸巾,且每次仅售出一包纸巾。纸巾售卖机的状态图如图16-6所示。 采用状态(State)模式来实现该纸巾售卖机,得到如图16-7所示的类图。其中,类State为抽象类,定义了投币、退币、
某大型商场内安装了多个简易的纸巾售卖机,自动出售2元钱一包的纸巾,且每次仅售出一包纸巾。纸巾售卖机的状态图如图16-6所示。 采用状态(State)模式来实现该纸巾售卖机,得到如图16-7所示的类图。其中,类State为抽象类,定义了投币、退币、
admin
2015-06-03
50
问题
某大型商场内安装了多个简易的纸巾售卖机,自动出售2元钱一包的纸巾,且每次仅售出一包纸巾。纸巾售卖机的状态图如图16-6所示。
采用状态(State)模式来实现该纸巾售卖机,得到如图16-7所示的类图。其中,类State为抽象类,定义了投币、退币、出纸巾等方法接口。类SoldState、SoldOutState、NoQuarterState和HasQuarterState分别对应图16-6中纸巾售卖机的4种状态:售出纸巾、纸巾售完、没有投币、有2元钱。
【Java代码】
import j ava.util.*;
interface State{
public void insertQuarter(); //投币
public void ejectQuarter(); //退币
public void turnCrank(); //按下“出纸巾”按钮
public void dispense(); //出纸巾
}
class TissueMachine{
(1)soldOutState,noQuarterState,hasQuarterstate,soldState,
state;
state=soldOutState;
int count=0; //纸巾数
public TissueMachine(int numbers)
{
/*实现代码省略*/
}
publ ic State getHasQuarterState() { return hasQuarterState; }
public State getNoQuarterState() {return noQuarterState; }
public State getSoldState() {return soldState; }
public State getSoldOutState() {return soldOutState; }
public int getCount() {return count; }
//其余代码省略
}
class NoQuarterState implements State{
TissueMachine tissueMachine;
public void insertQuarter() {
tissueMachine.setState((2));
}
//构造方法以及其余代码省略
}
class HasQuarterState implements State{
TiSsueMachine tissueMachine;
public void ejectQuarter(){
tissueMachine.setState((3));
}
//构造方法以及其余代码省略
}
class SoldState implements State{
TissueMachine tissueMachine;
public void dispense(){
if(tiSsueMachine.getCount()>0) {
tissueMachine.setState((4));
}else{
tissueMachine.setState((5)); }
}
}
选项
答案
(1)State (2)tissueMachine.getHasQuarterState() (3)tissueMachine.getNoQuarterState() (4)tissueMachine.getNoQuarterState() (5)tissueMachine.getSoldOutState()
解析
本题考查基本面向对象设计模式的运用能力。
状态设计模式主要是能够使一个对象的内在状态改变时允许改变其行为,使这个对象看起来像是改变了其类。由类图可知类State是类SoldState、SoldOutState、NoQuarterState和HasQuarterState分的父类,它抽象了这4个类的共有属性和行为。在使用中,无论是这4个类中哪个类的对象,都可被当作State对象来使用。
根据题目的描述,可以知道一个纸巾售卖机它由4种状态,分别是售出纸巾、纸巾售完、没有投币、有2元钱。
在本题中,根据程序不难知道第(1)空是要定义5个对象的引用,而这些变量都应该属于State类型,因此第一空答案为State。
第(2)在类NoQuarterState(没有投币)的insertQuarter0函数中,而这个函数是投币函数,在该函数中,使用了tissueMachine类的setState方法,该方法是设置纸巾售卖机的当前状态,根据题目给出的纸巾售卖机状态图,可以知道,从没有投币状态,经过投币后,应该转换到有2元钱状态。setState方法的参数是一个State的对象,因此第(2)空应该是一个有2元钱对象,这里可以新创建一个该对象,也可以通过tissueMachine类的getHasQuarterState方法来获得这样一个对象,所以第(2)空答案应该是tissueMachine.getHasQuarterState0或new HasQuarterState。
第(3)在类HasQuarterState(有2元钱)的ejectQuarter函数中,而这个函数是退币函数,在该函数中,也使用了tissueMachine类的setState方法,该方法是设置纸巾售卖机的当前状态,根据题目给出的纸巾售卖机状态图。可以知道,从有2元钱状态,经过退币后,应该转换到没有投币状态。setState方法的参数是一个State的对象,因此第(3)空应该是一个没有投币对象,这里可以新创建一个该对象,也可以通过tissueMachine类的getNoQuarterState方法来获得这样一个对象,所以第(3)空答案应该是tissueMachine.getNoQuarterState0或new NoQuarterState。
同样的道理,可以知道第(4)空的答案是tissueMachine.getNoQuarterState0或newNoQuarterState。第(5)空的答案是tissueMachine.getSoldOutState0或new SoldOutState。
转载请注明原文地址:https://kaotiyun.com/show/9dDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
阅读以下关于在Linux系统中配置Apache服务器的说明,回答问题1至问题3,将解答填入解答栏内。【说明】在Linux系统中采用Apache配置Web服务器。Apache服务器提供了丰富的功能,包括:目录索引、目录别名、虚拟主机、HTTP日志报
为了使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
请在(1)~(4)空白处填写恰当的内容。DHCP的工作过程是:1)IP租用请求。DHCP客户机启动后,发出一个DHCPDISCOVER消息,其封包的源地址为(1),目标地址为(2)。2)IP租用提供。当DHCP服务器收到DHCPDI
根据你的网络工程经验,请用250字以内的文字简要描述该21层教学综合大楼网络层次结构设计的要点。(不要求画图)该21层教学综合大楼的部分网络拓扑结构如图1-22所示,其中L3_switch1、L3_switch2为该教学综合大楼的两台核心交换机;Swi
阅读以下关于校园网组建的技术说明,根据要求回答问题1至问题4。【说明】某学校新建一栋21层教学综合大楼,楼层两端相距100m,距一端50m处有一弱电竖井,弱电竖井贯穿每层的弱电室。每层楼均有100个信息点(所有信息点要求具有100Mb/s的数据传
以下是使用E1线路实现多个64Kbit/s专线连接。当链路为T1时,channel-group编号为0~23,Timeslot范围为1~24;当链路为E1时,channel-group编号为0~30,Timeslot范围为1~31.路由器
阅读以下有关传统局域网络运行和维护的叙述,将应填入(n)处的字句写在对应栏内。在对网络运行及维护前首先要了解网络,包括识别网络对象的硬件情况、判别局域网的拓扑结构和信道访问方式、确定网络互联以及用户负载等。常见的3种拓扑结构是星形、(1)与(2)拓
在路由器上采用了NAT技术,请用300字以内的文字简要说明NAT技术中的动态地址翻译和IP地址伪装各有什么技术特点?阅读图5-18中给出的网络拓扑结构图,结合边界路由器Router的NAT表,将以下关于主机B向内部网络发出请求时,边界路由器Router
网络负载平衡(NetworkLoadBalancing)的核心是位于网络适配器驱动和(1)之间的WLBS.SYS的筛选器驱动。它采用一种(2),根据传入客户端的(3),以统计方式将其映射到群集主机。当发现到达的数据包时,所有主机同时执行这种映射,以快速
随机试题
2015年,全国居民人均可支配收入21966元,按常住地分,城镇居民人均可支配收入31195元,比上年增长8.2%;农村居民人均可支配收入11422元,比上年增长8.9%;农民工月均收入水平3072元,比上年增长7.2%;全国居民人均消费支出15
对外开放是一项涉及面十分广泛的基本国策,其基本点是
下列说话错误的是()
银翘散主要用于
发展基层民主,是社会主义民主最为广泛而深刻的实践,也是发展社会主义民主的基础性工作。目前,我国基层民主建设的主要内容有()。①村民自治②城市居民自治③乡镇政权建设④企事业单位工会建设
下列对应关系不正确的是哪一项?()
为缓解中小企业融资难的问题,某地政府积极向金融机构推荐业绩优、成长好的小企业,解决了金融机构向小企业贷款走:程中的信息不对称问题,实现了银行与小企业的互利双赢。这说明政府()。
“十五”以来,广东省的产业集群发展迅速,特色产业基地已成为广东省经济持续快速增长的新亮点。据统计,2006年广东省特色产业基地工业总产值达4930亿元,约占全省工业总产值的10%,基地的高新技术产品产值1650亿元,占全省高新技术产品产值的1l%。全省特色
下列关于法律实施的表述,不能成立的是()。
应用______软件不能在Windows环境下搭建Web服务器。
最新回复
(
0
)