首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
(2012年上半年下午试题六)阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某咖啡店卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价
(2012年上半年下午试题六)阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某咖啡店卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价
admin
2018-07-27
20
问题
(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://kaotiyun.com/show/d7DZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
从下列的2道试题(试题5、试题6)中任选1道解答。如果解答的试题数超过1道,则题号小的1道解答有效。请认真阅读下列有关于路由器配置的技术说明,根据要求回答问题1至问题5。【说明】菜地市级水电站网络除了和远程子网172.20.0.0/24
请问无线局域网的工作模式有哪几种?当不使用AP时,必须把一组需要互相通信的无线网卡的什么值设为相同?
阅读以下说明,回答问题1、问题2、问题3和问题4,将解答填入对应栏内。[说明]现在,家居装修布线是一个大且细致的工程项目,除了要布设普通电源线、有线电视电缆和电话线、音响线、视频线等,越来越多的电脑爱好者家中的网络布线则是少不了的。如果不是
请指出现有虚拟局域网络的4种划分方式。在基于端口的VLAN划分中,交换机上的每一个端口允许以哪3种模式划入VLAN中,并简述它们的含义。
将图2-2中(1)和(2)空缺名称填写在对应的解答栏内。在本质上,ADSL采用的什么多路复用方式?
阅读以下说明,回答问题1~6。【说明】ADSL是接入Internet的一种宽带技术,如图2-2所示为一台带网卡的PC机采用ADSL接入Internet的网络结构图。
阅读以下说明,回答问题1和问题2。【说明】二层隧道协议L2TP(Layer2TunnelingProtocol)是一种基于点对点协议PPP的二层隧道协议。某网络结构如图2-7所示,采用L2TP来实现网络安全。
认真阅读下列有关Linux操作系统环境下配置Apache服务器的技术说明,根据要求回答问题1至问题5。【说明】随着电子商务日益普及,A公司建构了一台装有RedhatLinux9.0操作系统的虚拟服务器,为各类客户提供网上架构商务站点的Web服
为了便于用户下载相关资料,特安装一台FTP服务器,其服务器端软件是Serv-U,假如要增加一个名为CIU10009的用户,对应目录为D盘,且要求加密,在图6-4中怎么设置?假如想将某用户在设咸FTP服务器管理员,其用户名称不变,请问在“Privileg
随机试题
弯曲时,当纤维方向与曲线________,可采用较大弯曲半径。
社会主义的根本任务是()
连接动脉、静脉的枢纽和心血管系统的“动力泵”是
适用于管壁厚度为30mm的高压钢管焊接的坡口形式是( )。
统计标准在法律效力上,最高层次的是国家统计标准,其次是部门统计标准。()
甲集成电路生产企业2009年成立,投资额100亿元,经营期限20年。2011年该企业开始获利,企业拟对2012~2022年内购置的固定资产进行税收筹划。财务部门给予的下列建议中,可以被采纳的是()。(2012年)
《天工开物》的作者是()。
设y=2f(x)f(ex),其中f(x)可微,则dy=________.
实事求是是中国共产党人始终坚持的思想路线是指()。
ThethemeinmanyofThomasHardy’snovelsis
最新回复
(
0
)