首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某发票(Invoice)由抬头(Head)部分、正文部分和脚注(Foot)部分构成。现采用装饰(Decorator)模式实现打印发票的功能,得到如图6-1所示的类图。 [
阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某发票(Invoice)由抬头(Head)部分、正文部分和脚注(Foot)部分构成。现采用装饰(Decorator)模式实现打印发票的功能,得到如图6-1所示的类图。 [
admin
2017-11-28
92
问题
阅读下列说明和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://kaotiyun.com/show/RKDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
PGP协议采用RSA和IDEA两种加密算法组成链式加密体系,这种方案的优点是(1)。PGP还可以对电子邮件进行认证,认证机制是用MD5算法产生(2)位的报文摘要,发送方用自己的RSA私钥对(3)进行加密,附加在邮件中进行传送。公钥只用来加密(4),文件是用
阅读以下基于VPN网络互连的网络规划设计的技术说明,根据要求回答问题1至问题3。【说明】某软件开发公司总部和子公司A、子公司B分别位于3个不同的省城,公司总部通过一台带VPN功能的防火墙与Internet连接。该防火墙支持PPTP、L2TP、IP
非对称数字用户线(AsymmetricDigitalSubscriberLine,ADSL)是一种利用现有的传统电话线路高速传输数字信息的技术。ADSL技术可以充分利用现有铜线网路,只要在用户线路两端加装ADSL设备即可为用户提供服务。ADSL系统构
请说出(1)、(2)、(3)、(4)、(5)对应行的含义。(1)图6-3是Windowsxp的DNS设置窗口,请指出图6-3中配置错误之处。(2)在Windowsxp系统中,根据图6-3中的相关信息,请写出默认路由。(3)图6-
对一个大型校园网工程进行网络备份系统设计时,应考虑解决哪些主要的问题?请用150字以内的文字简要说明。数据库系统存储了大量的数据,在发生意外的情况下,为了确保数据能够尽可能准确地恢复,数据库系统提供了备份和恢复的功能。通常,数据库管理系统都提供了全部数
请用100字以内的文字说明该网管软件项目采用快速原型开发方法的优缺点。项目管理就是以项目为对象的系统管理方法,通过一个临时性的专门的柔性组织,对项目进行高效率的计划、组织、指导和控制,以实现项目全过程的动态管理和项目目标的综合协调与优化。除了本题涉及到
请用100字以内的文字说明该网管软件项目采用快速原型开发方法的优缺点。根据试题的描述信息分析,在最理想的情况下,需要多少天才能完成此网管软件开发任务?如果按保守的估计,则需要多少天才可完成此开发任务?(请列出简要的计算过程)
从图7-1中可以看出采用什么拓扑结构与设计方法?在“电视模块”中一般采用75欧的CATV电缆传输模拟信号,如果在“电脑模块”中也要采用75欧的CATV电缆传输信号,该怎么实现?
将图2-2中(1)和(2)空缺名称填写在对应的解答栏内。按照G.lite的最高速率标准,上传24MB的文件需要多少秒时间?
随机试题
能够引起劳动法律关系产生的劳动法律事实是()
乙型血友病缺乏的因子为
雷尼替丁为
框架一剪力墙结构中,主要承受水平荷载的是()。
某外资企业出口一批男式全羊毛西服,该批西服分别用85%的进料加工料件和15%的国产原料加工而成,请问该企业在向海关办理出口申报手续时应填写哪种报关单?()
下列各项目中,不属于企业应当披露的重要会计政策的是()。
市场调查研究分析工作主要包括________。
为了解某新品种黄瓜的生长情况,抽查了部分黄瓜株上长出的黄瓜根数,得到下面的条形图,观察该图,可知共抽查了()株黄瓜,并可估计这个新品种黄瓜平均每株结()根黄瓜。
DM和______是同义词。
Lookatthestatementsandtheshortnewsbelow.Whichnewsdoeseachstatement1-7referto.Foreachsentence,markonelette
最新回复
(
0
)