首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和Java代码,将应填入(1)~(6)处的字句写在答题纸的对应栏内。 【说明】 某咖啡店当卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格如下表所示。
阅读下列说明和Java代码,将应填入(1)~(6)处的字句写在答题纸的对应栏内。 【说明】 某咖啡店当卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格如下表所示。
admin
2013-07-09
62
问题
阅读下列说明和Java代码,将应填入(1)~(6)处的字句写在答题纸的对应栏内。
【说明】
某咖啡店当卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格如下表所示。
现采用装饰器(Decorator)模式来实现计算费用的功能,得到如图6—1所示的类图。
[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 finalint DARKROAST_PRICE=20;
public DarkRoast(){description=“DarkRoast”;}
public int cost(){rcturn DARKROAST PRICE;}
}
class Mocha extends CondimentDecorator{//摩卡
private final int MOCHA_PRICE=10;
public Mocha(Beverage beverage){
this.beverage=beverage;
}
public String getDescription() {
return beverage.getDescription0 + “,Mocha”;
}
public int cost(){
return MOCHA_PRICE+beverage.cost();
}
}
class Whip extends CondimentDecorator{//奶泡
private finalint 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();}
}
publ ic 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() +”¥” +beverag e.cost());
}
}
编译运行上述程序,其输出结果为:
DarkRoast,Mocha,Whip¥38
选项
答案
(1)abstract (2)String getDescription (3)abstract int cost() (4)Beverage beverage (5)beverage (6)beverage
解析
装饰器模式描述了如何动态地为一个对象添加职责。该模式采用递归方式组合对象,从而允许添加任意多的对象职责。在下列情况下可以使用装饰器模式:
(1)在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。
(2)处理那些可以撤销的职责。
(3)当不能采用生成子类的方法进行扩充时。一种情况是可能有大量独立的扩展,为支持每一种组合将产生大量的子类,使得子类数目呈爆炸性增长。另一种情况可能是因为类定义被隐藏,或类定义不能用于生成子类。
装饰器模式的结构如下图所示。其中:
.抽象组件角色(Component):定义一个对象接口,以规范准备接受附加责任的对象,即可以给这些对象动态地添加职责。
.具体组件角色(ConcreteComponent):被装饰者,定义一个将要被装饰增加功能的类。可以给这个类的对象添加一些职责。
.抽象装饰器(Decorator):维持一个指向构件Corn-ponent对象的实例,并定义一个与抽象组件角色Compo-nent接口一致的接口。
.具体装饰器角色(Concrete Decorator):向组件添加职责。
图6—1中的Beverage对应的就是上图中的抽象类Component、Espresso和DarkRoast对应的是ConcreteCom-ponent,CondimentDecorator对应抽象装饰器Decorator、Mocha和Whip扮演的是类CondimentDecorator的具体装饰器角色Concrete Decorator。
由于类Beverage为其子类提供了统一的操作接口,所以将其定义为抽象类。通过可以在类名前加abstract关键字来定义抽象类,因此(1)处应填入abstract。
(2)和(3)处考查构造函数的的定义。从(2)处构造甬数体中返回值的类型及后续的子类继承程序可知,(2)处应填入String getDescription;从public int cost(){return ES-PRESSO PRICE;}可以看出,cost()函数的返回值为常量,因此(3)处应填入abstract int cost()。
(4)处考查对CondimentDecorator的定义,在该类中声明一类成员变量,并在this.beverage=beverage和returnbeverage.getDescription0+”,Mocha”加以使用。因此(4)处应填入Beverage beverage。
(5)和(6)处考查实例化类模板的方法。类模板必须在实例化后才能使用。实例化类模板时,要给出类型实参。从类图可知,(5)和(6)处均应填入beverage。
转载请注明原文地址:https://www.kaotiyun.com/show/QiDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
黑盒测试法是根据产品的______来设计测试用例的。A.功能B.输入数据C.应用范围D.内部逻辑
已知关系模式:图书(图书编号,图书类型,图书名称,作者,出版社,出版日期,ISBN),图书编号唯一识别一本图书。建立“计算机”类图书的视图Compute-BOOK,并要求进行修改、插入操作时保证该视图只有计算机类的图书。CREATE(1)
某文件管理系统在磁盘上建立了位示图(bitmap),记录磁盘的使用情况。若系统中字长为32位,磁盘上的物理块依次编号为:0、1、2、…,那么8192号物理块的使用情况在位示图中的第(12)个字中有所描述。
能够主动采集信息,分析网络攻击行为和误操作的实时保护策略是指(64)。
以下不属于在需求分析阶段编写的文档是
编译和解释是实现高级程序设计语言的两种基本方式,________是这两种方式的主要区别。
通常VLAN有静态和动态2种实现方式,这2种方式分别是如何实现的?各有什么特点?Switch1采用的是哪种实现方式?填充VLAN信息表如表9-3所示,将答案填写在答题纸相应位置。
在应用服务器关机的情况下,公司员工能连接上因特网吗?简要解释。假设采用ISDN基本速率接口,下载1875KB的文件,最快需要多长时间?
双绞线可以制作成直连线和交叉线两种形式。在上图中,两个交换机的UPLINK口相连,使用的双绞线制作成什么形式?连接交换机和计算机的双绞线制作成什么形式?阅读下面的配置信息,解释(7)处的命令。Switch#configtSwitch(
认真阅读下列说明信息,回答问题1至问题5。[说明]在一个基于TCP/IP协议的网络中,每台主机都有一个IP地址,根据获得IP地址的方式不同,可以分为静态IP和动态IP。例如:用宽带入网,会有一个固定的IP地址,每次连入Internet,你的IP地
随机试题
Thetwinshelped______intheirstudies.
A.葡萄糖B.硫代硫酸钠C.羟钴胺D.硫酸钠E.亚硝酸钠氰化物中毒的解毒剂主要有以下四类,请指出它们分别包含哪一种药物?
可引起手部鱼际间隙感染的有
具有安胎、解表、解鱼蟹毒功效的药物是
与甲有合作关系的钢材供应商乙在没有约定的情况下运送10t钢筋到甲工地,甲经验收确认钢筋合格后用于工程施工,则该合同属于()合同。
下列关于预算线的表述错误的是()。
经()以上的业主提议,业主委员会应当组织召开业主大会临时会议,业主有对物业管理有关事项提出建议的权利,促使物业管理能及时、有效地以符合广大业主利益的方式进行。
Forseveralyears,Americanshaveenjoyedteleshopping-watchingTVandbuyingthingsbyphone.NowteleshoppingisstartinginE
2006年人才蓝皮书指出,在中国、美国、日本、德国、俄罗斯和印度六国人才国际竞争力排名中,中国位居第四位,仅排在俄罗斯和印度之前,属于第三层次。中国人才国际竞争力远低于排在第一位的美国,仅相当于美国的48%,总体差距非常明显。 不过,令人意外的是,我国
高血压的并发症下列哪项较少见
最新回复
(
0
)