首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C++代码,将应填入(n)________处的字句写在答题纸的对应栏内。 【说明】 某软件公司欲开发一款汽车竞速类游戏,需要模拟长轮胎和短轮胎急刹车时在路面上留下的不同痕迹,并考虑后续能模拟更多种轮胎急刹车时的痕迹。现采用策略(Strateg
阅读下列说明和C++代码,将应填入(n)________处的字句写在答题纸的对应栏内。 【说明】 某软件公司欲开发一款汽车竞速类游戏,需要模拟长轮胎和短轮胎急刹车时在路面上留下的不同痕迹,并考虑后续能模拟更多种轮胎急刹车时的痕迹。现采用策略(Strateg
admin
2021-03-13
12
问题
阅读下列说明和C++代码,将应填入(n)________处的字句写在答题纸的对应栏内。
【说明】
某软件公司欲开发一款汽车竞速类游戏,需要模拟长轮胎和短轮胎急刹车时在路面上留下的不同痕迹,并考虑后续能模拟更多种轮胎急刹车时的痕迹。现采用策略(Strategy)设计模式来实现该需求,所设计的类图如图6-1所示。
【C++代码】
#include
using namespace std;
class BrakeBehavior {
public:
(1)________;
/*其余代码省略*/
};
class LongwheelBrake:public BrakeBehavior {
public:
void stop(){ cout<<"模拟长轮胎刹车痕迹!"<<endl;}
/*其余代码省略*/
};
class ShortWheelBrake:public BrakeBehavior {
public:
void stop(){cout<<"模拟短轮胎刹车痕迹!"<<endl;}
/*其余代码省略*/
};
class Car {
protected:
(2)________wheel;
public:
void brake(){ (3)________; )
/*其余代码省略*/
};
class ShortWheelCar;public Car {
public;
ShortWheelCar(BrakeBehavior
*
behavior){
(4)________;
}
/*其余代码省略*/
};
int main(){
BrakeBehavior
*
brake=new ShortWheelBrake();
ShortWheelCar carl(brake);
carl.(5)________:
return 0;
}
选项
答案
(1)virtual void stop()=0 (2)BrakeBehavior
*
(3)wheel->stop() (4)wheel=behavior (5)brake()
解析
本题考查设计模式中策略(Strategy)模式的基本概念和应用。
策略模式的意图是,定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。此模式使得算法可以独立于使用它们的客户而变化。策略模式的结构图如图
6-2所示。
其中:
Strategy(策略)定义所有支持的算法的公共接口。Context使用这个接口来调用某ConcreteStrategy定义的算法。
ConcreteStrategy(具体策略)以Strategy接口实现某具体算法。
Context(上下文)用一个ConcreteStrategy对象来配置:维护一个对Strategy对象的引用;可定义一个接口来让Strategy访问它的数据。
策略模式适用于:
许多相关的类仅仅是行为有异。“策略”提供了一种用多个行为中的一个行为来配置一个类的方法。
需要使用一个算法的不同变体。例如,定义一些反映不同空间的空间/时间权衡的算法。当这些变体实现为一个算法的类层次时,可以使用策略模式。
算法使用客户不应该知道的数据。可使用策略模式以避免暴露复杂的、与算法相关的数据结构。
一个类定义了多种行为,并且这些行为在这个类的操作中以多个条件语句的形式出现,将相关的条件分支移入它们各自的Strategy类中,以代替这些条件语句。
本题中的类BrakeBehavior对应于图6-2中的Strategy,类LongWheelBrake和ShortWheelBrake则是具体的策略子类,每个子类以Strategy提供的接口实现某具体算法。
第(1)空需要填写的就是类BrakeBehavior中所定义的接口,这一空的答案可以从BrakeBehavior的子类中得出。这里采用了C++中的纯虚拟函数机制,使BrakeBehavior成为了抽象基类,为其子类提供统一操作接口,具体实现则由子类来实现。因此第(1)空应填入virtual void stop()=0。
第(2)~(3)空在类Car中。类Car对应于图6-2中的类Context,其作用是:用一个ConcreteStrategy对象来配置,维护一个对Strategy对象的引用,定义一个接口来让Strategy访问它的数据。第(2)空用于定义和维护对Strategy对象的引用,这里需要给出其类型,因此第(2)空应填入BrakeBehavior
*
。第(3)空要求给出方法brake的实现,这里需要调用策略类所提供的策略,因此第(3)空应填入wheel->stop()。
第(4)空是在为Car的子类设置ConcreteStrategy对象,因此第(4)空应填入wheel=behavior。
第(5)空考查的是对策略模式的使用,这里需要调用Car中所定义的接口brake,因此第(5)空应填入brake()。
转载请注明原文地址:https://kaotiyun.com/show/dsxZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
通常,在该图书馆架构无线局域网(WLAN)的设计流程需要经过以下6个阶段:A.设备软硬件安装、调试B.确定无线局域网物理结构C.确定无线局域网逻辑结构D.进行需求分析和现场调研E.验收测试和维护F.进行设备产
通常,在该图书馆架构无线局域网(WLAN)的设计流程需要经过以下6个阶段:A.设备软硬件安装、调试B.确定无线局域网物理结构C.确定无线局域网逻辑结构D.进行需求分析和现场调研E.验收测试和维护F.进行设备产
造成故障1的原因是什么?如何解决?1.将故障2中(1)和(2)两处合适的答案填入相应的解答栏内。2.故障2如何解决?
阅读以下说明,回答问题1、问题2、问题3和问题4,将解答填入对应栏内。[说明]某公司想建立一个Intranet,建立FTP服务器、DNS服务器、Email服务器、Web服务器和内部业务服务器,同时其他部门的工作人员也要联网,要求这些机器有的
随着Internet的发展,用户对网络带宽的要求不断提高,传统的接入网已成为整个网络中的瓶颈,以新的宽带接入技术取而代之已成为目前研究的焦点。其中最引人注意的是光纤接入技术。
设计布线时,需要考虑哪些主要因素?结构化布线应遵循的国际标准有哪些?
通过移动电话接入互联网采用的是什么交换技术,而打电话又是采用什么技术?公司网络中的设备或系统(包括存储商业机密的数据库服务器、邮件服务器,存储资源代码的PC、应用网关、存储私人信息的PC、电子商务系统)中,哪些应放在DMZ中,哪些应放在内网中?并请给予
在OSI参考模型有哪几层?Windows组网中采用什么工具来实现域的创建和管理?在什么情况下需要设置“主域”?
随机试题
内分泌一代谢性疾病患者常见的症状和体征包括有()。
因为无氧缺血时脑细胞损伤的进程5分钟脑内ATP枯竭,能量代谢完全停止。因此,最佳的抢救时间窗在多少分钟之内,充分体现时间就是生命的概念()
用于抵御社会风险的制度安排,并且有社会福利计划和社会安全网之称的是( )。
某投资者投资10000元于一项期限为3年、年息8%的债券(按年计息),按复利计算该项投资的终值为( )元。
公司合并的,应当自作出合并决议之日起()日内通知债权人,并于30日内在报纸上公告。
甲公司于2013年1月7日成立,王某为法定代表人。2013年1月10日,甲公司因办理日常结算需要,在P银行开立了基本存款账户。2015年2月18日,甲公司因资金需求,在Q银行借款300万元,开立了一般存款账户。2016年5月19日,甲公司因被吊销营业执照而
下列收入应计入我国GDP的有()。
自杀预防研究中心在对中国大学生自杀意念进行研究时发现,在社交中增强沟通有助于负面情绪的消解,社交可以成为预防自杀的方法之一。社交的积极作用提醒着我们,要让社交平台______,切莫成为负面情绪的放大镜。填入画横线部分最恰当的一项是()。
小刘用Excel2010制作了一份员工档案表,但经理的计算机中只安装了Office2003,能让经理正常打开员工档案表的最优操作方法是
A、Itwassad.B、Itwasunbelievable.C、Itwasboring.D、Itwasfunny.C女士问男士觉得布伦达讲的故事怎么样,男士说布伦达讲故事的时候他都快睡着了(hardtokeepawake),言
最新回复
(
0
)