首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
(2012年上半年下午试题六)阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某咖啡店卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价
(2012年上半年下午试题六)阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某咖啡店卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价
admin
2018-07-27
28
问题
(2012年上半年下午试题六)阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
某咖啡店卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格如表10.10所示。
现采用装饰器(Decorator)模式来实现计算费用的功能,得到如图10.30所示的类图。
【Java代码】
import java.util.*;
____(1) class Beverage{ //饮料
String description=’’Unknown Beverage’;
public____(2)(){return description;}
public____(3);
}
abstract class CondimentDecorator extends Beverage{ //配料____(4);
}
class Espresso extends Beverage { //蒸馏咖啡
private final int ESPRESSO_PRICE=25;
public Espresso() { description=’’Espresso’’; }
public int cost(){return ESPRESSO_PRICE;}
}
class DarkRoast extends Beverage{ //深度烘焙咖啡
private final int DARKROAST_PRICE=20;
public DarkRoast(){description=’’DarkRoast’’;}
public int COSt() { return DARKROAST PRICE;}
}
class Mocha extends CondimentDecorator { //摩卡
private final int MOCHA_PRICE=10;
public Mocha(Beverage beverage){
this.beverage=beverage;
}
public String getDescription() {
return beverage.getDescription() + ’’,Mocha’’;
}
public int cost(){
return MOCHA_PRICE+beverage.cost();
}
}
class Whip extends condimentDecorator { //奶泡
private final int WHIP_PRICE=8;
public Whip(Beverage beverage){this.beverage=beverage;}
public String getDescription() {
return beverage.getDescription()+’’,Whip’’;
}
public int cost(){return WHIP_PRICE+beverage.cost();}
}
public class Coffee{
public static Void main(String args[]) {
BeVerage beVerage=new DarkRoast();
beverage=new Mocha( _____(5));
beVerage=new whip _____(6);
System.out.println(beVerage.getDescription()+’’¥’’+beVerage.cost());
}
}
编译运行上述程序,其输出结果为:
DarkRoast,Mocha,Whip¥38
选项
答案
(1)abstract (2)String getDescription (3)abstract int cost() (4)Beverage beverage (5)beverage (6)beverage
解析
装饰器模式描述了如何动态地为一个对象添加职责。该模式采用递归方式组合对象,从而允许添加任意多的对象职责。在下列情况下可以使用装饰器模式。
(1)在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。
(2)处理那些可以撤销的职责。
(3)当不能采用生成子类的方法进行扩充时。一种情况是,可能有大量独立的扩展,为支持每一种组合将产生大量的子类,使得子类数目呈爆炸性增长。另一种情况可能是因为类定义被隐藏,或类定义不能用于生成子类。
装饰器模式的结构如图10.31所示。图中各部分说明如下。
抽象组件角色(Component):定义一个对象接口,以规范准备接受附加责任的对象,即可以给这些对象动态地添加职责。
具体组件角色(ConcreteComponent):被装饰者,定义一个将要被装饰增加功能的类。可以给这个类的对象添加一些职责。
抽象装饰器(Decorator):维持一个指向构件Component对象的实例,并定义一个与抽象组件角色(Component、胺口一致的接口。
具体装饰器角色(ConcreteDecorator):向组件添加职责。
图10.30中的.Beverage对应的就是图10.31中的抽象类Component,Espresso和DarkRoast对应的是ConcreteComponent,CondimentDecorator对应的是Decorator,Mocha和Whip扮演的是类CondimentDecorator的具体装饰器角色ConcreteDecorator。
由于类Beverage为其子类提供了统一的操作接口,所以将其定义为抽象类。可以通过在类名前加abstract关键字来定义抽象类,因此空(1)处应填入abstract。
空(2)处和空(3)处考查构造函数的定义。从空(2)处构造函数体中返回值的类型及后续的子类继承程序可知,空(2)处应填入String getDescription;从public int cost(){return ESPRESSO PRICE;}可以看出,cost()函数的返回值为常量,因此空(3)处应填入abstract intcost()。
空(4)处考查对CondimentDecorator的定义,在该类中声明一类成员变量,并在this.beverage=beverage和return beverage.getDescription()+’’,Mocha’’中加以使用。因此空(4)处应填入Beverage beverage。
空(5)处和空(6)处考查实例化类模板的方法。类模板必须在实例化后才能使用。实例化类模板时,要给出类型实参。从类图可知,空(5)处和空(6)处均应填入beverage。
转载请注明原文地址:https://www.kaotiyun.com/show/d7DZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
阅读以下说明,回答问题1、问题2、问题3、问题4和问题5,将解答填入对应栏内。[说明]无源光网络(PON),是指在OLT(光线路终端)和ONU(光网络单元)之间的光分配网络(ODN)没有任何有源电子设备。PON(无源光网络)技术是一种一点对
阅读以下说明,回答问题1、问题2、问题3和问题4,将解答填入对应栏内。[说明]现在,家居装修布线是一个大且细致的工程项目,除了要布设普通电源线、有线电视电缆和电话线、音响线、视频线等,越来越多的电脑爱好者家中的网络布线则是少不了的。如果不是
结合图7-18所示的网络拓扑结构图,将以下路由器R1配置信息中(1)~(9)空缺处的内容填写完整,实现路由器R1的正确配置。Router>en(进入特权模式)Router#
阅读以下关于网络应用系统可靠性分析方面的技术说明,根据要求回答问题1至问题4。【说明】可靠性是一个网络应用系统能正常工作的能力,一般用平均故障间隔时间(MTBF)来度量。某网络应用软件研发公司正在开发一个嵌入式实时应用软件——宽带路由器的NanO
认真阅读下列有关移动用户身份认证技术的说明,根据要求回答问题1至问题4。【说明】随着无线局域网技术、3G移动通信技术的不断发展,网络资源得到了更广泛的利用。由于移动环境下的通信链路比较容易受到恶意攻击或窃听,因此在移动节点与本地代理1之间交换的登
在安装RedhatLinux9.0操作系统的过程中,如果没有选择安装Web服务器,Apache服务器则需要手动安装。现从http://httpd.apache.org网站上免费下载了一个apache-2.2.3RPM格式的软件包,请将以下(1)空缺处
在安装RedhatLinux9.0操作系统的过程中,如果没有选择安装Web服务器,Apache服务器则需要手动安装。现从http://httpd.apache.org网站上免费下载了一个apache-2.2.3RPM格式的软件包,请将以下(1)空缺处
在安装RedhatLinux9.0操作系统的过程中,如果没有选择安装Web服务器,Apache服务器则需要手动安装。现从http://httpd.apache.org网站上免费下载了一个apache-2.2.3RPM格式的软件包,请将以下(1)空缺处
为了便于用户下载相关资料,特安装一台FTP服务器,其服务器端软件是Serv-U,假如要增加一个名为CIU10009的用户,对应目录为D盘,且要求加密,在图6-4中怎么设置?假如用户人数达到1000,为了保证100个用户同时正常下载,请问在图6-4中怎么
在图8-12所示的拓扑结构中的代理服务器上依次单击“开始→程序→管理工具→路由与远程访问,并在系统弹出的界面中打开“IP路由选择”目录树,然后用鼠标右键单击“NAT/基本防火墙”,选择[新增接口]命令。接着若选择接口1的“本地连接”,最后进行如图8-13所
随机试题
《季氏将伐颛臾》选自
内生殖器与邻近器官的关系哪项不正确
4岁男孩,发现心脏杂音、全身青紫3年半,活动后突然晕厥、抽搐,听诊胸骨左缘第3肋间Ⅱ级收缩期杂音,肺动脉第2音减弱。此时护士应准备静脉注射的药物是()
当重力式挡土墙地基表面纵向坡度大于()时,其基底应做成台阶形。
关于问题和答案设计的排序,下列问题应排在前面的有()。
你认为法官这个职业与其他职业有何明显区别?
相和歌辞中的《东门行》、《妇病行》、《孤儿行》表现的都是_______的疾苦。
A、ballet.B、Swimming.C、Nursing.D、TeachingBWhatdoesthegirllikedoing?
Readinginvolveslookingatgraphicsymbolsandformulatingmentallythesoundsandideastheyre-present.Conceptsofreading
A、Itsummarizedbusreviewsfromothersources.B、Itdidn’tshowanysignsofsuccesswithinmonths.C、Taymanwasworkingwith2
最新回复
(
0
)