首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 欲开发一个绘图软件,要求使用不同的绘图程序绘制不同的图形。以绘制直线和圆形为例,对应的绘图程序如表6.1所示。 该绘图软件的扩展性要求,将不断扩充
阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 欲开发一个绘图软件,要求使用不同的绘图程序绘制不同的图形。以绘制直线和圆形为例,对应的绘图程序如表6.1所示。 该绘图软件的扩展性要求,将不断扩充
admin
2014-05-07
76
问题
阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
欲开发一个绘图软件,要求使用不同的绘图程序绘制不同的图形。以绘制直线和圆形为例,对应的绘图程序如表6.1所示。
该绘图软件的扩展性要求,将不断扩充新的图形和新的绘图程序。为了避免出现类爆炸的情况,现采用桥接(Bridge)模式来实现上述要求,得到如图6.1所示的类图。
【Java代码】
(1)Drawing{
(2) ;
(3) ;
}
clasS DP1{
static public void draw_a_line(double x1,double y1,double x2,doubley2)
{/*代码省略*/}
static public void draw_a_circle(double x,double y,double r){/*代码省略*/}
}
clas S DP2{
static public void drawline(double x1,double y1,double x2,double y2)
{/*代码省略*/}
static public void drawcircle(double x,double y,double r){/*代码省略*/}
}
class V1Drawing implements Drawing{
public void drawLine(double x1,double y1,double x2,double y2){/*代码省略*/}
public void draw Circle(double X,double Y,double r){ (4) ; }
}
clasS V2Drawing implements Drawing{
public void drawLine(double xl,double yl,double x2,double y2){/*代码省略*/}
public void drawCircle(double X,double Y,double r){ (5) ; }
}
abstract class Shape{
private Drawing_dp;
(6) ;
Shape(Drawing dp){_dp=dp;}
publ ic void drawLine(double x1,double y1,double x2,double y2){
dp.drawLine(x1,y1,x2,y2); }
public void drawCirle(double x,double y,double r){_dp.draw Circle(x,y,r); }
}
clas S Rectangle extends Shape{
private double_x1,_x2,_y1,_y2;
publ ic Rectangle(Drawing dp,double x1,double y1,double x2,doubley2)
{/*代码省略*/)
public void draw(){/*代码省略*/}
}
clas S Circle extends Shape{
private double X,一Y,一r;
public Circle(Drawing dp,double X,double Y,double r)
{/*代码省略*/ }
public void draw(){drawCirle(_x, _y, _r); )
}
选项
答案
(1)interface (2)void drawLine(double xl,double y1,double x2,double y2) (3)void drawCircle(double X,double y,double r) (4)DP1.draw a circle(x,y,r) (5)DP2.drawcircle(x,y,r) (6)abstract public void draw()
解析
本题考查桥接(Bridge)模式的概念及应用。
Bridge模式可以将复杂的组件分成两个独立的但又相关的继承层次结构:功能性的抽象和内部实现。改变组件的这两个层次结构很简单,以至于它们可以相互独立地变化。
当具有抽象的层次结构和相应的实现层次结构时,Bridge模式是非常有用的。除了可以将抽象和实现组合成许多不同的类,该模式还可以以动态组合的独立类的形式实现这些抽象和实现。下图所示是Bridge模式的类图。
在以下情况中,应该使用Bridge模式:
想避免在抽象及其实现之间存在永久的绑定;
抽象及其实现可以使用子类进行扩展;
抽象的实现被改动应该对客户端没有影响,也就是说,不需要重新编译代码。
本题中,类Shape对应上图中的Abstraction,表示抽象部分;类Drawing对应Implementor,表示实现部分。这两个类的子类分别表示具体的抽象部分和实现部分。类Drawing为具体的实现类提供统一接口,在Java中可以使用接口来实现。因此(1)、(2)、 (3)分别应为“interface”、“void drawLine(double x1,double y1,double x2,double y2)”、“void drawCircle(double x,double y,double r)”。
V1Drawing是绘图实现类之一,它采用的绘图程序由是DP1所提供的。因此(4)处应为“DP1.draw a circle(x,y,r)”。同理(5)处应为“DP2.drawcircle(x,y,r)”。
由类图可以看出,Shape类中定义的方法draw在其子类中被重置了,而Shape表示的是抽象部分,可以将draw方法定义为抽象函数。所以,(6)应该为“abstract public voiddraw()”。
转载请注明原文地址:https://kaotiyun.com/show/uiDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
关于软件测试过程中的配置管理,______是不正确的表述。A.测试活动的配置管理属于整个软件项目配置管理的一部分B.软件测试配置管理包括4个基本的活动:配置项变更控制、配置状态报告、配置审计、配置管理委员会建立C.配置项变更控制要规定测试基线,对每个
确定测试基线属于()活动。
关于软件测试,(31)的叙述是正确的。①测试开始越早,越有利于发现软件缺陷②采用正确的测试用例设计方法,软件测试可以做到穷举测试③测试覆盖度和测试用例数量成正比④软件测试的时间越长越好
数据库是按照一定的数据模型组织、存储和应用的______的集合。
函数main()、f()的定义如下所示。调用函数f()时,第一个参数采用传值(callbyvalue)方式,第二个参数采用传引用(callbyreference)方式,main()执行后输出的值为_______。
通常VLAN有静态和动态2种实现方式,这2种方式分别是如何实现的?各有什么特点?Switch1采用的是哪种实现方式?填充VLAN信息表如表9-3所示,将答案填写在答题纸相应位置。
在应用服务器关机的情况下,公司员工能连接上因特网吗?简要解释。假设采用ISDN基本速率接口,下载1875KB的文件,最快需要多长时间?
阅读以下说明,回答问题1至问题8。[说明]Linux系统开机引导时首先启动内核,由内核检查和初始化硬件设备,载入设备的驱动程序模块,安装root文件系统,然后内核将启动一个名为init的进程。在init运行完成并启动其他必要的后续进程后,
IIS安装的硬盘分区最好选用NTFS格式,是因为(1)和(2)。A.可以针对某个文件或文件夹给不同的用户分配不同的权限B.可以防止网页中的Applet程序访问硬盘中的文件C.可以使用系统自带的文件加密系统对文件或文件夹进行加密
随机试题
白菜、芹菜、油菜、菠菜等同蔬菜的关系属于()
卡马西平的不良反应有
编制按工程进度的施工成本计划,通常可利用控制项目进度的()进一步扩充而得。
OWC的中文含义是什么?OWC是否付提箱押金?
1863年11月林肯在著名的葛底斯堡演说中誓言:“要使民有、民治、民享的政府永世长存”,为实现此目标,他当时的首要任务是()。
违法:犯罪:打击
瑞典人不都爱好棒球运动,但冰岛人都不爱好棒球运动。如果已知上述第一个断定为真,第二个断定假,则以下哪项据此不能确定真假?I.瑞典人都爱好棒球运动,有的冰岛人也爱好棒球运动。Ⅱ.有的瑞典人爱好棒球运动,有的冰岛人不爱好棒球运动。
地理环境是怎样影响人类社会的?
在计算机网络中,网络协议与______模型的集合称为网络体系结构。
组合框是文本框和()特性的组合。
最新回复
(
0
)