首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某发票(Invoice)由抬头(Head)部分、正文部分和脚注(Foot)部分构成。现采用装饰(Decorator)模式实现打印发票的功能,得到如图6-1所示的类图。 [
阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某发票(Invoice)由抬头(Head)部分、正文部分和脚注(Foot)部分构成。现采用装饰(Decorator)模式实现打印发票的功能,得到如图6-1所示的类图。 [
admin
2017-11-28
49
问题
阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
某发票(Invoice)由抬头(Head)部分、正文部分和脚注(Foot)部分构成。现采用装饰(Decorator)模式实现打印发票的功能,得到如图6-1所示的类图。
[Java代码]
class Invoice{
public void print工nVoice() {
System.out.println(“This is the content of the invoice!”);
}
}
class Decorator extends Invoice{
protected Invoice ticket;
publ ic Decorator(Invoice t){
ticket=t;
}
public void print Invoice(){
if(ticket!=null)
(1);
}
)
clas s HeadDecorator extends Decorator{
public HeadDecorator(Invoice t){
super(t);
}
public void printInVoice() {
System.out.println(“This is the header of the invoice!”);
(2);
}
}
class FootDecorator extends Decorator{
public FootDecorator(Invoice t){
super(t);
}
public void printInVoice() {
(3);
System.out.println(“This is the footnote of the invoice!”);
}
}
class Test{
public static void main(String[]args){
Invoice t=new Invoice();
Invoice ticket;
ticket= (4);
ticket.printInvoice();
System.out.println(“一一一一一一”);
ticket= (5) ;
ticket.printInvoice();
}
}
程序的输出结果为:
This is the header of the invoice!
This is the content of the invoice!
This is the footnote of the invoice!
This is the header of the invoice!
This is the footnote of the invojce!
选项
答案
(1)ticket.printlnvoice() (2)super.printlnvoice() (3)super.printlnvoice() (4)new HeadDecorator(new FootDecorator(t)) (5)new HeadDecorator(new FootDecorator(null))
解析
本题考查装饰(Decorator)模式的基本概念和应用。
装饰模式属于结构型设计模式,其设计意图是动态地给一个对象添加一些额外的职责。就增加功能而言,装饰模式比生成子类更加灵活。装饰模式的结构如图6-2所示。
其中:
Component定义一个对象接口,可以给这些对象动态地添加职责。
ConcreteComponent定义一个对象,可以给这个对象添加一些职责。
Decorator维持一个指向Component对象的指针,并定义一个与Component接口一致的接口。
ConcreteDecorator向组件添加职责。
装饰模式适用于:
在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。
处理那些可以撤销的职责。
当不能采用生成子类的方式进行扩充时。一种情况是,可能有大量独立的扩展,为支持每一种组合将产生大量的子类,使得子类数目呈爆炸性增长。另一种情况可能是,由于类定义被隐藏,或类定义不能用于生成子类。
本题将装饰模式用于实现打印发票问题。图6-1的类图中,类Invoice对应图6-2中的Component,其功能是打印发票的内容:HeadDecorator和FootDecorator是两个ConcreteDecorator,向组件中添加打印发票头和发票脚注的功能。
方法printlnvoice是Invoice中定义的接口,Component类中应定义一个与之一致的接口。这个接口在类Decorator、HeadDecorator和FootDecorator中分别进行了重新定义,分别对应代码中的空(1)~(3)。
类Decorator中保持了一个Component对象——.ticket,用来接收所要装饰的组件Invoice。因此空(1)处应填写“ticket.printlnvoice()”。类HeadDecorator和FootDecorator:是在打印发票内容的基础上,打印发票的抬头和脚注,所以空(2)、(3)处都应填写“super.printInvoice()”。
空(4)~(5)考查的是装饰模式的调用,分别应填写为“new HeadDecorator(new FootDecorator(t))”和“new HeadDecorator(new FootDecorator(null))”。
转载请注明原文地址:https://jikaoti.com/ti/fMi7FFFM
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
认真阅读以下关于架构Apache安全服务器的技术说明,根据要求回答问题1至问题5。【说明】某些商务公司要求其网站的部分信息资源只对经过身份认证后的用户开放。因此在Linux+Apache架构Web服务器方案中,需利用mod-ss1模块给Apach
阅读以下基于VPN网络互连的网络规划设计的技术说明,根据要求回答问题1至问题3。【说明】某软件开发公司总部和子公司A、子公司B分别位于3个不同的省城,公司总部通过一台带VPN功能的防火墙与Internet连接。该防火墙支持PPTP、L2TP、IP
如果在网络设计过程中划分了很多VLAN,则可采用VTP来简化其管理。交换机管理IP地址只能创建在(1)中,而VTP信息只能在(2)端口上传播。共享相同VLAN数据库的交换机构成一个(3)。不同交换机平台、不同的IOS版本支持的VLAN数量不同,从图6-18
根据该单位防火墙与外部网络相关的网络连接参数,请将以下命令行中(1)~(4)空缺处的内容填写完整,以完成对防火墙相应的网络接口进行地址初始化的配置。FireWall(config)#ipaddressinside(1)(2)
阅读以下关于某硬件防火墙相关配置的技术说明,根据要求回答问题1至问题4。【说明】某单位在部署内部局域网时选用了一款硬件防火墙,该防火墙分别带有“WAN”、“LAN”“DMZ”、“FUN”等4个网络接口,支持Web界面、命令行等多种管理模式。该单位
阅读以下说明,回答问题1和问题2。【说明】某学校拟组建一个小型校园网,具体设计如下:1.设计要求。(1)终端用户包括:48个校园网普通用户;一个有24个多媒体用户的电子阅览室;一个有48个用户的多媒体教室(性能要求高于电子阅
对一个大型校园网工程进行网络备份系统设计时,应考虑解决哪些主要的问题?请用150字以内的文字简要说明。数据库系统存储了大量的数据,在发生意外的情况下,为了确保数据能够尽可能准确地恢复,数据库系统提供了备份和恢复的功能。通常,数据库管理系统都提供了全部数
请说出图9-1的拓扑结构名称与特点。请比较交换机的堆叠与级联的区别。
请问无线局域网的工作模式有哪几种?当不使用AP时,必须把一组需要互相通信的无线网卡的什么值设为相同?
阅读以下关于网络应用系统可靠性分析方面的技术说明,根据要求回答问题1至问题4。【说明】可靠性是一个网络应用系统能正常工作的能力,一般用平均故障间隔时间(MTBF)来度量。某网络应用软件研发公司正在开发一个嵌入式实时应用软件——宽带路由器的NanO
随机试题
物力资源的节约的主要途径有
在Internet上广泛使用的WWW是一种()。
肺痈溃脓期的治法为
易引起低血糖的药物是
审核输入凭证、记账、月末转账
感应电炉的缺点是()。
我国东汉时期,杨震在担任荆州刺史时,县令王密夜晚送去黄金,扬震坚决拒绝。王密说:“现在是夜里,没人知道。”杨震正色道:“天知,地知,你知,我知,怎么说没人知道。”这个故事给我们的启示有()。
求微分方程yˊˊ+2yˊ+y=xex的通解.
计算机的主存储器容量达到1GB时,其地址的表示至少需要使用( )位二进制。
Theboysbrokeintoexcitedcheering.
最新回复
(
0
)