首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和Java代码,将应填入(n)处的字句写在对应栏内。 [说明] 在一些大型系统中,大多数的功能在初始化时要花费很多时间,如果在启动的时候,所有功能(连不用的功能)都要全面初始化的话,会连带影响到应用软件要花很多时间才能启动。因此
阅读以下说明和Java代码,将应填入(n)处的字句写在对应栏内。 [说明] 在一些大型系统中,大多数的功能在初始化时要花费很多时间,如果在启动的时候,所有功能(连不用的功能)都要全面初始化的话,会连带影响到应用软件要花很多时间才能启动。因此
admin
2013-01-05
32
问题
阅读以下说明和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
软件设计师下午应用技术考试
软考中级
相关试题推荐
软件风险一般包含(14)两个特性。
下图是①设计模式的类图,该设计模式的目的是②,图中,Abstraction和RefinedAbstraction之间是③关系,Abstraction和Implementor之间是④关系。③处应填入?
在引入自动化测试工具以前,手工测试遇到的问题包括()。①工作量和时间耗费过于庞大②衡量软件测试工作进展困难③长时间运行的可靠性测试问题④对并发用户进行模拟的问题⑤确定系统的性能瓶颈问题⑥软件测试过程的管
数据库测试的对象包括______。①数据库连接测试②数据库的安全测试③定义的存储过程和触发器的测试④数据库接口测试
防火墙对数据包进行过滤时,不能过滤的是(9)________________。
在计算机外部设备和主存之间直接传送而不是由CPU执行程序指令进行数据传送的控制方式称为(5)________________。
关于软件测试过程中的配置管理,______是不正确的表述。A.测试活动的配置管理属于整个软件项目配置管理的一部分B.软件测试配置管理包括4个基本的活动:配置项变更控制、配置状态报告、配置审计、配置管理委员会建立C.配置项变更控制要规定测试基线,对每个
软件可靠性管理把软件可靠性活动贯穿于软件开发的全过程,成为软件工程管理的一部分。确定软件的可靠性目标在()阶段。
编译和解释是实现高级程序设计语言的两种基本方式,________是这两种方式的主要区别。
随机试题
残阳如血,给巨大的耶稣塑像镀上一层金黄,让它更显神秘庄严。站在“地球最高峰”,__________塞班360度的海景。壮丽无比、美艳绝伦:岛周围有无数珊瑚礁,在阳光的__________下,海水呈现出粉蓝、碧蓝、浅蓝、深蓝、墨蓝等奇幻色彩;在天际线那墨蓝的
从工作性质上看,公共关系的职能的特征是____________、____________。
初产妇,36岁,臀位,合并中度妊娠期高血压疾病。因臀位行外倒转术后突然腹痛,伴少量阴道出血,并出现子宫底升高,胎心165~168次/分。最恰当的处理是
下述何项不能作为重度妊高征的指标之一
数字有线电视系统主要性能指标参数包括()。
某工程的设备及工器具购置费为1000万元,建筑安装工程费为1300万元,工程建设其他费为600万元,基本预备费率为5%。该项目的基本预备费为( )万元。
联磺甲氧苄啶片
以下生活常识,说法正确的是()。
appear,competitive,corporate,corrupt,differ,ethics,interest,nation,present,sponsor,volunteer,co-workerAsurp
Directions:Forthispart,youareallowed30minutestowritealettertoyourforeignlanguageteachertoinvitehim/hertoat
最新回复
(
0
)