首页
登录
从业资格
某软件公司现欲开发一款飞机飞行模拟系统,该系统主要模拟不同种类飞机的飞行特征与起
某软件公司现欲开发一款飞机飞行模拟系统,该系统主要模拟不同种类飞机的飞行特征与起
资格题库
2022-08-02
52
问题
某软件公司现欲开发一款飞机飞行模拟系统,该系统主要模拟不同种类飞机的飞行特征与起飞特征。需要模拟的飞机种类及其特征如表6-1所示。表6-1
为支持将来模拟更多种类的飞机,采用策略设计模式(Strategy)设计的类图如图6-1所示。
图6-1中,AirCraft为抽象类,描述了抽象的飞机,而类Helicopter、AirPlane、Fighter和Harrier分别描述具体的飞机种类,方法fly( )和takeOff( )分别表示不同飞机都具有飞行特征和起飞特征类FlyBehavior与TakeOffBehavior为抽象类,分别用于表示抽象的飞行为与起飞行为;类SubSonicFly与SuperSonicFly分别描述亚音速飞行和超音速飞行的行为;类VerticalTakeOff与LongDistanceTakeOff分别描述垂直起飞与长距离起飞的行为。【Java代码】interface FlyBehavior{public void fly( );};class SubSonicFly implements FlyBehavior{public void fly( ){System.out.println("亚音速飞行!");}};class SuperSonicFly implements FlyBehavior{public void fly( ){System.out.println("超音速飞行!");}};interface TakeOffBehavior{public void takeOff( );};class VerticalTakeOff implements TakeOffBehavior{public void takeOff( ){System.out.println("垂直起飞!");}};class LongDistanceTakeOff implements TakeOffBehavior{public void takeOff( ){System.out.println("长距离起飞!");}};abstract class AirCraft{protected(1);protected(2);public void fly( ){(3);}public void takeOff( ){(4);};};class Helicopter(5)AirCraft{public Helicopter( ){flyBehavior=new(6);takeOffBehavior=new(7);}};//其它代码省略
选项
答案
解析
(1)FlyBehavior flyBehavior(2分)
(2)TakeOffBehavior takeOffBehavior(2分)
(3)flyBehavior.fly()(2分)
(4)takeOffBehavior.takeOff()(2分)
(5)extends(3分)
(6)SubSonicFly()(2分)
(7)VerticalTakeOff()(2分)
注:空(1)与空(2)答案可互换
本题目考查了设计模式中的策略设计模式,实际上与2007年上半年Java题目的考核内容相同。
从本题的叙述中可以看出,存在四种不同的飞机类型,但每种飞机类型的起飞特征和飞行特征并不完全相同,这就使得我们很难采用比较直接的方法来实现重用。例如,定义一个抽象的飞机类,实现飞机的起飞特征,然后四种飞机直接重用该特征。但是,我们可以观察到,尽管飞机的起飞特征和飞行特征有所不同,有一点可以肯定的是,一种飞机都具备了飞行特征和起飞特征。因此,可以抽象出一个飞机类,其中含有飞行特征与起飞特征,但关于两个特征的实现要单独抽取出来,所以又形成了FIyBehavior类和TakeOffBehavior类,分别表示抽象的飞行特征和起飞特征,而这两个类的子类则分别现不同的起飞和飞行特征,最终转化为,在创建一个具体的飞机时,给其配上不同的起飞特征和飞行特征即可。
本题中的空(1)和空(2)应该填写成员变量,根据类图可以得知,此处应该表示的是飞行和起飞特征变量。空(3)和空(4)处需要实现飞行与起飞特征,但AirCraft是抽象的类,所以把实现代理给指针变量。Helicopter类需要指定由父类继承而来的成员变量的初始值,因为Helicopter的特征是垂直起飞和亚音速飞行,因此生成这两个特征的对象,分别赋值给flyBehavior和takeOffBchavior变量。
转载请注明原文地址:https://tihaiku.com/congyezige/2409435.html
本试题收录于:
中级 软件设计师题库软件水平考试初中高级分类
中级 软件设计师
软件水平考试初中高级
相关试题推荐
在数据库系统运行中,经常会找出频繁执行的SQL语句进行优化。常见的优化策略有:
某本科高校新建教务管理系统,支撑各学院正常的教学教务管理工作。经过初步分析,系
某海外代购公司,为扩展公司业务,需要开发一个信息息化管理系统。请根据公司现有业务
某房屋租赁公司拟开发一个管理系统用于管理其持有的房屋、租客及员工信息。请根据下述
某省针对每年举行的足球联赛,拟开发一套信息管理系统,以方便管理球队、球员、主教练
某家电销售电子商务公司拟开发一套信息管理系统,以方便对公司的员工、家电销售、家电
某医疗护理机构为老年人或有护理需求者提供专业护理。现欲开发一基于Web的医疗
开发大型的管理信息系统(MIS)时,首选的数据库管理系统(DBMS)是()。
确定系统边界属于数据库设计的()阶段。A.需求分析 B.概念设计 C.逻辑
事务提交之后,其对数据库的修改还存留在缓冲区中,并未写入到硬盘,此时发生系统故障
随机试题
Heroinaddictiontodayisfoundchieflyamongyoungmenof【B1】______groups
在我抽烟的时候,我有这样一种感觉。那闪烁着的烟头在一点一点地燃烧着时间。幽幽窜出的白烟,如同往事。它们在我们肺腑和身体内留下一种滋味,一种气息。纠结在我
What’sthecontentofthecourse?[br]Ifyouwanttotakethecourse,whenshou
下列哪种功能是硫胺素的非辅酶功能A.参与α-酮酸的氧化脱羧反应 B.参与三大营
关于证券公司短期融资券的发行,下列说法错误的是()。A:证券公司应在短期融资券
细菌天然耐药的机制往往是A.染色体DNA突变B.耐药质粒介导C.噬菌体DNA的插
患者,男,60岁,间歇无痛性肉眼血尿伴乏力消瘦2个月就诊。体查:体温37.9℃,
消费者将以自己的消费意图为基础,结合他人态度和非预期的情境因素,最终实现()。A
某一层吊车的两跨厂房,每跨厂房各设有3台A5工作级别的吊车。试问,通常情况下,进
A.人工牙过于偏向颊侧 B.平面过高 C.上下颌覆盖不够 D.颊部组织因为
最新回复
(
0
)