首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
某咖啡店当卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格如表17—2所示。 现采用装饰器(Decorator)模式来实现计算费用的功能,得到如图17—5所示的类图。 [Java代
某咖啡店当卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格如表17—2所示。 现采用装饰器(Decorator)模式来实现计算费用的功能,得到如图17—5所示的类图。 [Java代
admin
2014-11-13
18
问题
某咖啡店当卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格如表17—2所示。
现采用装饰器(Decorator)模式来实现计算费用的功能,得到如图17—5所示的类图。
[Java代码]
import j ava.util.*;
(1)class Beverage(//饮料
String descript ion=“Unknown Beverage”;
public (2) ()(return description;)
public (3);
}
abstract class CondimentDecorator extends Beverage{//配料
(4) ;
}
class Espresso extends Beverage(//蒸馏咖啡
private final int ESPRESSO—PRICE=25;
pubiic Espresso() ( description=”Espresso”;*}
publ ic int cost()(return ESPRESSO—PRICE;)
}
class DarkRoast extends Beverage(//深度烘焙咖啡
private f inal int DARKROAST—PRICE=2 0;
publ ic DarkRoast()(descript ion=“DarkRoast”;}
public int cost()(rcturn DARKROAST PRICE;}
}
class Mocha extends CondimentDecorator{//摩卡
private final int MOCHA_PRICE=10;
public Mocha(Beverage beverage){
this.beverage=beverage;
}
publ ic String getDescript ion() {
return beverage.getDescription0 + “, Mocha”;
}
publ ic int cost(){
return MOCHA—PRICE+beverage.cost();
}
}
class Whil3 extends condimentDecorator ( //奶泡
private finalint WHIP_PRICE=8;
publ ic Whip(Beverage beverage)(this.beverage=beverage;)
publiC String getDescrip七ion() (
return beverage.getDescrip七ion()+”, 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.print in(beverage.getDescrip七ion() +。“¥” +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)当不能采用生成子类的方法进行扩充时。一种情况是,可能有大量独立的扩展,为支持每一种组合将产生大量的子类,使得子类数目呈爆炸性增长。另一种情况可能是因为类定义被隐藏,或类定义不能用于生成子类。
装饰器模式的结构如图17—6所示。其中:
抽象组件角色(Component):定义一个对象接口,以规范准备接受附加责任的对象,即可以给这些对象动态地添加职责。具体组件角色(ConcreteComponent):被装饰者,定义一个将要被装饰增加功能的类。可以给这个类的对象添加一些职责。抽象装饰器(Decorator):维持一个指向构件Component对象的实例,并定义一个与抽象组件角色Component接口一致的接口。具体装饰器角色(Concrete Decorator):向组件添加职责。
图17—5中的Beverage对应的就是上图中的抽象类Component,Espresso和DarkRoast对应的是ConcreteComponent,CondimentDecorator对应抽象装饰器Decorator,Mocha和Whip扮演的是类CondimentDecorator的具体装饰器角色Concrete Decorator。
由于类Beverage为其子类提供了统一的操作接口,所以将其定义为抽象类。通过可以在类名前加abstract关键字来定义抽象类,因此(1)处应填入abstract。
(2)和(3)处考查构造函数的定义。从(2)处构造函数体中返回值的类型及后续的子类继承程序可知, (2)处应填)kString getDescriptiom从public int cost(){retum ESPRESSO—PRICE;}可以看出,cost()函数的返回值为常量,因此(3)处应填入abstract int cost()。
(4)处考查对CondimentDecorator的定义,在该类中声明一类成员变量,并在this.beverage=beverage~lreturn beverage.getDescription0+”,Mocha”加以使用。因此(4)处应填入Beverage beverage;。
(5)和(6)处考查实例化类模板的方法。类模板必须在实例化后才能使用。实例化类模板时,要给出类型实参。从类图可知, (5)和(6)处均应填.Abeverage。
转载请注明原文地址:https://jikaoti.com/ti/J0i7FFFM
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
网络设计流程通常由以下五个阶段组成:A.确定网络物理结构B.确定网络逻辑结构C.对现有网络的体系结构进行分析D.安装和维护E.需求分析根据网络开发设计的过程,给出上述五个阶段的先后排序:(1)。将答
IIS安装的硬盘分区最好选用NTFS格式,是因为(1)和(2)。A.可以针对某个文件或文件夹给不同的用户分配不同的权限B.可以防止网页中的Applet程序访问硬盘中的文件C.可以使用系统自带的文件加密系统对文件或文件夹进行加密
阅读以下说明,回答问题1至问题6。【说明】某公司在WindowsServer2003中安装IIS6.0来配置Web服务器,域名为www.abc.com。
在“管理工具”中运行“管理IP筛选器列表”,创建一个名为“SNMP消息”的筛选器。在如图12-3所示的“IP筛选器向导”中指定IP通信的源地址,下拉列表框中应选择(1);在如图12-4中指定IP通信的目标地址,下拉列表框中应选择(2)。在图
阅读以下关于Linux网关安装和配置过程的说明,回答问题1至问题5。【说明】当局域网中存在大量计算机时,根据业务的不同,可以将网络分成几个相对独立的子网。图12-2是某公司子网划分的示意图,整个网络被均分为销售部和技术部两个子网,子网之间通过一台
在校园网设计过程中,划分了很多VLAN,采用了VTP来简化管理。1.VTP信息只能在(1)端口上传播。2.运行VTP的交换机可以工作在三种模式:(2)、(3)、(4)。3.共享相同VLAN数据库的交换机构成一个(5)。该校园网内
从网络拓扑图中可以看出该校园网采用了分层设计结构,回答以下问题:1.交换机按照所处的层次和完成的功能分为三种类型:核心交换机、汇聚交换机和接入交换机。下表是学校采购的三种交换机,请根据交换机的技术指标确定交换机的类型。在答题纸对应的解答栏内
在控制面板的“添加/删除程序”对话框中选择(1),然后进入“应用程序服务器”选项,在(2)组件复选框中选择“文件传输协议(FTP)服务”,就可以在Windows2003中安装FTP服务。(1)A.更改或删除程序B.添加新程序C.添加/删除
请在(1)、(2)、(3)、(4)空白处填写恰当的内容。Web客户机与服务器共同遵守(1)协议,其工作过程是;Web客户端程序根据输入的(2)连接到相应的Web服务器上,并获得指定的Web文档。动态网页以(3)程序的形式在服务器端处理,并给客户端返
随机试题
Itwas______seriousaccidentthathewaskeptinhospitalforweeks.
SPA存在于下列哪种细菌
新生儿早产儿用药应特别注意药物不良反应,那么下列哪种药能引起小儿“灰婴”综合征?()
当事人欲将某外国法院作出的民事判决申请中国法院承认和执行。根据中国法律,下列哪一选项是错误的?(2012年卷一第39题)
FIDIC深信()的实施对成功的咨询企业是至关重要的,也是企业持续经营的唯一途径。
深孔爆破具有的优点有()。
某汽车库地下3层,每层建筑面积均为4000m2,每层均设有四部封闭楼梯间,共设有420个停车车位;地下三层主要使用功能为复式汽车库和风机房,划分为两个防火分区(建筑面积均为2000m2,均设有两部防烟楼梯间);地下二层主要使用功能为普通汽车库、消防泵房、变
20l4年1—2月,我国金融市场总体运行平稳。(一)债券市场发行情况1月份,债券市场发行债券4041.7亿元,同比减少24.8%,环比减少27.1%。其中,银行间债券市场发行债券3927.9亿元,环比减少19.6%。2月份,债券市场发行债券5880
韩国:首尔
TheartofpublicspeakingbeganinancientGreeceover2,000yearsago.Now,twitter,instantmessenging,e-mail,blogsandcha
最新回复
(
0
)