首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和Java代码,将应填入(n)处的字句写在对应栏内。 [说明] 在一些大型系统中,大多数的功能在初始化时要花费很多时间,如果在启动的时候,所有功能(连不用的功能)都要全面初始化的话,会连带影响到应用软件要花很多时间才能启动。因此
阅读以下说明和Java代码,将应填入(n)处的字句写在对应栏内。 [说明] 在一些大型系统中,大多数的功能在初始化时要花费很多时间,如果在启动的时候,所有功能(连不用的功能)都要全面初始化的话,会连带影响到应用软件要花很多时间才能启动。因此
admin
2013-01-05
71
问题
阅读以下说明和Java代码,将应填入(n)处的字句写在对应栏内。
[说明]
在一些大型系统中,大多数的功能在初始化时要花费很多时间,如果在启动的时候,所有功能(连不用的功能)都要全面初始化的话,会连带影响到应用软件要花很多时间才能启动。因此常将程序设计成到了实际要使用某种功能的阶段才初始化该功能。
以下示例展示了Proxy(代理)模式,PrinterProxy类执行一些比较“轻”的方法——设置名称和取得名称,需要真正执行“重”的方法——真正打印——时才初始Print类。图6-1显示了各个类间的关系。
[图6-1]
[Java代码]
//Printable.Java
publiC (1) Printable{
public abstract void setPrinterName(String name);
public abstract String getprinterName();
public abstract void print(String string);
}
//Printer.Java
public class Printer implements Printable{
private String name;
public Printer(){
System.out.println("正在产生Printer的对象实例");
}
public Printer(String name){
this.name=name;
heavyJob("正在产生Printer的对象实例("+name+")");
public void setPrinterName(String name){
this.name=name;
public String getPrinterName(){
return name;
public void print(String string){
System.out.println("===" +name+" ====");
System.out.println(string);
}
}
//PrinterProxy.Java
public class PrinterProxy (2) Printable{
private String name;
private Printer real;
public PrinterProxy(){}
public PrinterProxy(String name){
this.name=name;
}
public gynchronized void setPrinterName(String name){
if( (3) ){
real.setPrinterName(name);
}
this.name=name;
}
public String getprinterName(){
return name;
}
public void print(String string){
(4);
real.print(string);
}
private synchronized void realize(){//产生真正的Printer对象
if(real==null){
real=(5);
}
}
}
(5)
选项
答案
new Printer(name)
解析
在Java中,interface和abstract class均能包含抽象方法,“类是用来继承的(extends),接口是用来实现的(implements)。”由类Printer的声明可判知Printable应为接口,故空(1)应填interface。
因Printable是一个接口,故空(2)应填implements。该空比较简单。
real是一个引用,调用之前当然得先判断real是否为空,只有不是空才能进行调用,否则将出现不可预期的结果,因此空(3)应填real !-NULL。
在执行打印时,需要保证已经正确生成了real对象,否则打印将无法完成,这也正是Proxy的核心所在,到真正需要打印时,才生产real对象,因此空(4)应填realize()。
real是Printer对象引用,空(5)是生成一个Printer对象,注意Printer类的构造函数是Printer(string name),故应填new Printer(name)。顺便说一下,生成real对象时,进行Treal是否为空的判断,并将方法realize()声明为synchronized,这是为了避免生成多个real对象,有一个即可。
转载请注明原文地址:https://kaotiyun.com/show/UYDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
正确的集成测试描述包括(43)。①集成测试也叫做组装测试,通常是在单元测试的基础上,将模块按照设计说明书要求进行组装和测试的过程②自顶向下的增殖方式是集成测试的一种组装方式,它能较早地验证主要的控制和判断点,对于输入输出模块、复杂算法模
以下关于结构化开发方法的叙述中,不正确的是()。
针对下列程序段,对于(A,B,C)的取值,以下(56)测试用例组合能够满足语句覆盖的要求。IF((A+10)=2OR(B-20)<3)THENC=0IF((A+30)=10AND(C-30)<0)THENB=30
由于不同加密机制的用途及强度不同,因此一个信息系统中加密机制使用是否合理,强度是否满足当前需要,需要通过测试来检验,通常()是测试的一个重要手段。
下图是①设计模式的类图,该设计模式的目的是②,图中,Abstraction和RefinedAbstraction之间是③关系,Abstraction和Implementor之间是④关系。②处应填入?
“<titlestyle="italic">science</title>”是XML中一个元素的定义,其中元素的内容是(29)。
关于软件测试过程中的配置管理,______是不正确的表述。A.测试活动的配置管理属于整个软件项目配置管理的一部分B.软件测试配置管理包括4个基本的活动:配置项变更控制、配置状态报告、配置审计、配置管理委员会建立C.配置项变更控制要规定测试基线,对每个
表示“以字符a开头且仅由字符a、b构成的所有字符串”的正规式为______。
以下不属于在需求分析阶段编写的文档是
随机试题
目前美国最大的占美国网上证券交易金额的25%的网上券商是()
治疗脑水肿选用:治疗急性肺水肿选用:
2D-PC-MRA的特点不包括
葶苈子的功效为
推敲:修改
罗马对意大利的征服、统治政策及历史意义。
[*]
已知A=能对角化.求An.
Woman:Yourdormitoryroomisn’tverylarge,isit?Man:Icanhardlyturnaroundinit.Question:Whatdoesthemanmean?
A、Sheforgotthetime.B、Shedidn’tfeelhungry.C、Sheattendedaprolongedclass.D、Sheranintoanoldfriend.C对话中女士说:“我们的政治课
最新回复
(
0
)