首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
某咖啡店当卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格如表17—2所示。 现采用装饰器(Decorator)模式来实现计算费用的功能,得到如图17—5所示的类图。 [Java代
某咖啡店当卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格如表17—2所示。 现采用装饰器(Decorator)模式来实现计算费用的功能,得到如图17—5所示的类图。 [Java代
admin
2014-11-13
26
问题
某咖啡店当卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格如表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
软件设计师下午应用技术考试
软考中级
相关试题推荐
网络设计流程通常由以下五个阶段组成:A.确定网络物理结构B.确定网络逻辑结构C.对现有网络的体系结构进行分析D.安装和维护E.需求分析根据网络开发设计的过程,给出上述五个阶段的先后排序:(1)。Ca
网络设计流程通常由以下五个阶段组成:A.确定网络物理结构B.确定网络逻辑结构C.对现有网络的体系结构进行分析D.安装和维护E.需求分析根据网络开发设计的过程,给出上述五个阶段的先后排序:(1)。将答
某交换机的配置命令如下,根据命令后面的注释,填写(1)~(3)处的空缺内容,完成配置命令。Switch(config)#(1)//将交换机命名为Sw1Swl(config)#interfacevlan1Swl(config
阅读以下关于Linux网关安装和配置过程的说明,回答问题1至问题5。【说明】当局域网中存在大量计算机时,根据业务的不同,可以将网络分成几个相对独立的子网。图12-2是某公司子网划分的示意图,整个网络被均分为销售部和技术部两个子网,子网之间通过一台
在校园网设计过程中,划分了很多VLAN,采用了VTP来简化管理。1.VTP信息只能在(1)端口上传播。2.运行VTP的交换机可以工作在三种模式:(2)、(3)、(4)。3.共享相同VLAN数据库的交换机构成一个(5)。该校园网在
DHCP允许服务器向客户端动态分配Ⅲ地址和配置信息。客户端可以从DHCP服务器获得(1)。(1)A.DHCP服务器的地址B.Web服务器的地址C.DNS服务器的地址通常采用IP地址与MAC地址绑定的策略为某些设备保留固定的IP地址
从网络拓扑图中可以看出该校园网采用了分层设计结构,回答以下问题:1.交换机按照所处的层次和完成的功能分为三种类型:核心交换机、汇聚交换机和接入交换机。下表是学校采购的三种交换机,请根据交换机的技术指标确定交换机的类型。在答题纸对应的解答栏内
从网络拓扑图中可以看出该校园网采用了分层设计结构,回答以下问题:1.交换机按照所处的层次和完成的功能分为三种类型:核心交换机、汇聚交换机和接入交换机。下表是学校采购的三种交换机,请根据交换机的技术指标确定交换机的类型。在答题纸对应的解答栏内
阅读以下说明,回答问题1至问题4。【说明】某学校欲构建校园网,根据实际情况,计划在校园总部采用有线网络和无线网络相结合的接入方式,校园分部通过Internet采用VPN技术与校园总部互联,该校园网的网络拓扑结构如图1-1所示。
随机试题
按顺序排列下面的语句,组成语意连贯的一段话,排序正确的一项是()。①人类世界所创造出来的奇异图案浮露在鼎身上,各种图腾以一定的秩序排列着,构成一个无言的小宇宙。②饕餮的脸孔、凤凰的姿势、龙虎的文身、鱼兽的混种、牛羊的肢体……幻觉的、
设在f(x)点x=0处连续,且=2,则f′(0)=()
患者,男性,56岁,右上第一磨牙残冠慢性根尖周炎。拔除过程中,腭侧根折断,取根时,牙根突然消失,捏鼻鼓气时,牙槽窝内有气泡溢出。关于牙根进入上颌窦所引起的后果中错误的是
旅游行政部门应当自收到申请领取导游证之日起()日内颁发导游证。
认知失调是改变学生态度必要而充分的条件。
在儿童早期,附属内驱力最为突出。()
游泳中发生腿部痉挛是十分危险的情况。调查发现,春季在游泳馆游泳的人中发生腿部痉挛的人数是在户外开放性水域游泳的人中发生腿部痉挛人数的2倍。因此,春季人们在户外开放性水域游泳时更不容易因为腿部痉挛而发生危险。为了评价上段陈述,最重要的是要知道()。
美国管理学者认为,业务性管理的幅度可以达到()
A、theexcitementinvolvedwiththepossibledangerB、thesmallamountofpaperworkC、theveterinarymedicineD、thedeliveringo
Whatisanimu?It’soneof______.Howisthefoodfinallycovered?Itiscoveredwithapieceof______.
最新回复
(
0
)