首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
某咖啡店当卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格如表17—2所示。 现采用装饰器(Decorator)模式来实现计算费用的功能,得到如图17—5所示的类图。 [Java代
某咖啡店当卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格如表17—2所示。 现采用装饰器(Decorator)模式来实现计算费用的功能,得到如图17—5所示的类图。 [Java代
admin
2014-11-13
34
问题
某咖啡店当卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格如表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://kaotiyun.com/show/LpDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
IIS安装的硬盘分区最好选用NTFS格式,是因为(1)和(2)。A.可以针对某个文件或文件夹给不同的用户分配不同的权限B.可以防止网页中的Applet程序访问硬盘中的文件C.可以使用系统自带的文件加密系统对文件或文件夹进行加密
在“管理工具”中运行“管理IP筛选器列表”,创建一个名为“SNMP消息”的筛选器。在如图12-3所示的“IP筛选器向导”中指定IP通信的源地址,下拉列表框中应选择(1);在如图12-4中指定IP通信的目标地址,下拉列表框中应选择(2)。在图
销售部的网络号是(1),广播地址是(2):技术部的网络号是(3),广播地址是(4);每个子网可用的IP地址有(5)个。在网关计算机/etc/sysconfig/network-scripts/目录中有以下文件,运行某命令可以启动网络,该命令是(9),其
阅读以下说明,回答问题1至问题4。【说明】某学校计划建立校园网,拓扑结构如图12-1所示。该校园网分为核心、汇聚和接入三层,由交换模块、广域网接入模块、远程访问模块和服务器群四大部分构成。
请阅读下列SwitchA的配置信息,并在(1)~(5)处解释该语句的作用。Switch>enable(进入特权模式)Switch#configterminal(进入配置模式)Switch(config)#hostnameSwi
DHCP允许服务器向客户端动态分配Ⅲ地址和配置信息。客户端可以从DHCP服务器获得(1)。(1)A.DHCP服务器的地址B.Web服务器的地址C.DNS服务器的地址邮件服务器的网络配置信息如图3-5所示。请在图3-6中为邮件服务器
阅读以下说明,回答问题1至问题3。【说明】如图5-1所示,某单位通过2M的DDN专线接入广域网,该单位内网共分为三个子网。服务器放置在子网192.168.5.0/24中,财务部工作站放置在子网192.168.10.0/24,销售部工作站放置在子网
在控制面板的“添加/删除程序”对话框中选择(1),然后进入“应用程序服务器”选项,在(2)组件复选框中选择“文件传输协议(FTP)服务”,就可以在Windows2003中安装FTP服务。(1)A.更改或删除程序B.添加新程序C.添加/删除
在控制面板的“添加/删除程序”对话框中选择(1),然后进入“应用程序服务器”选项,在(2)组件复选框中选择“文件传输协议(FTP)服务”,就可以在Windows2003中安装FTP服务。(1)A.更改或删除程序B.添加新程序C.添加/删除
阅读以下说明,回答问题1至问题3。【说明】某校园网物理地点分布如图1-1所示,拓扑结构如图1-2所示:
随机试题
下列做法中,能够提高财政自身管理和运营效率的有()。
民事诉讼中,当事人不服地方人民法院第一审裁定的,有权在裁定书送达之日起()向上一级人民法院提起上诉。
实验室检查证实单纯疱疹病毒性角膜炎的金标准是
下列有关系统性硬化症的说法,哪一项是错误的
目标评价的常用分析方法包括目标树法、层次分析法等,国际上通常采用()。
案例五:张鹏和李平是同在北京工作的好友,两家居住在同一个居民楼。目前两家都打算额外购置一处房产,价格在50万元左右。张鹏夫妇皆为公务员,每月都按时缴纳住房公积金,张鹏的太太预计在退休年龄内可缴存住房公积金15万元,张鹏离法定退休年龄还剩30年,其名下现有的
为提高闲置资金的使用率,甲公司20×8年度进行了以下投资:(2009年)(1)1月1日,购入乙公司于当日归行且可上市交易的债券100万张,支付价款9500万元,另支付手续费90.12万元。该债券期限为5年,每张面值为100元,票面年利率为6%,于每年12
根据下面材料回答问题。2013年某省全部工业增加值13194.8亿元,比上年增长9.4%。规模以上工业增加值11711.1亿元,增长5.8%。在规模以上工业中,国有及国有控股企业增加值增长3.2%,集体企业下降0.2%.股份制企业增长11.2%,外商及港
FTP命令集因系统、版本而异,常用的命令如下。(54)有ASCII和二进制模式。(55)改变计算机的当前目录。(56)open建立同远程计算机的连接,close关闭连接。(57)put传送一个文件到远程计算机,put传送多个文件到远程计算机。(58)get
Mr.Smith,apassengeronthetranscontinentaltrain,appearedbeforethejudge.Apoliceofficerclaimedhehadattemptedto【
最新回复
(
0
)