首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
(2012年上半年下午试题六)阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某咖啡店卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价
(2012年上半年下午试题六)阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某咖啡店卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价
admin
2018-07-27
19
问题
(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://jikaoti.com/ti/sFi7FFFM
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
请指出现有虚拟局域网络的4种划分方式。在基于端口的VLAN划分中,交换机上的每一个端口允许以哪3种模式划入VLAN中,并简述它们的含义。
阅读以下有关网络设计的叙述,分析网络结构,回答问题1、问题2和问题3。某企业从20世纪50年代中期开始使用PC,历经3+网络、NOVELL网络的应用,后着手组建企业网络。经过需求分析和论证,设计出网络方案如图3-2所示。
在由L2TP构建的VPN中,主要由(1)和(2)两种类型的服务器构成。1.将图2-7中(1)和(2)处空缺名称填写在相应位置。2.简要说明两种服务器的主要作用。某路由器(在图2-7中没有标出)的部分配置信息如下所示,请解释其中注明部分的
阅读以下说明,回答问题1和问题2。【说明】二层隧道协议L2TP(Layer2TunnelingProtocol)是一种基于点对点协议PPP的二层隧道协议。某网络结构如图2-7所示,采用L2TP来实现网络安全。
如何根据网络流量选择联网设备,给出所选设备的作用。如何规划防火墙,将内部业务服务器和部分PC机与Internet隔离?
认真阅读下列有关移动用户身份认证技术的说明,根据要求回答问题1至问题4。【说明】随着无线局域网技术、3G移动通信技术的不断发展,网络资源得到了更广泛的利用。由于移动环境下的通信链路比较容易受到恶意攻击或窃听,因此在移动节点与本地代理1之间交换的登
阅读以下关于FTTC宽带接入Internet的技术说明,根据要求回答问题1至问题5。【说明】光纤接入网(OpticalAccessNetwork,OAN)是以光纤为传输媒体,并利用光波作为光载波传送信号的接入网。FTTC+LAN是实现居民宽带
在安装RedhatLinux9.0操作系统的过程中,如果没有选择安装Web服务器,Apache服务器则需要手动安装。现从http://httpd.apache.org网站上免费下载了一个apache-2.2.3RPM格式的软件包,请将以下(1)空缺处
随机试题
下列不符合梗死的描述是
男性,45岁,外伤致骨盆骨折,会阴部撕裂伤,术后尿潴留,烦躁不安,最佳处理方法是
硝酸甘油与普萘洛尔抗心绞痛的作用机制不同,但都能降低心肌耗氧量,关于二者的说法中正确的是
划分地价区段通常可分为()。
除()外,世界上其他国家都拥有顶级域名。
甲公司2013年10月10日自证券市场购入乙公司发行的股票100万股,共支付价款860万元.其中包括交易费用4万元。购入时,乙公司已宣告但尚未发放的现金股利为每股0.16元。甲公司将购入的乙公司股票作为交易性金融资产核算。2013年12月2日,甲公司出售该
保险资金托管具体可分为()。
行动研究起源于二战时期()等对社会科学研究的反思。
现代教育改革的核心是()。
Imusthavehung______fortenminutesbeforethetelephoneoperatorputmethrough.
最新回复
(
0
)