首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
(2012年下半年下午试题五)阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 现欲开发一个软件系统,要求能够同时支持多种不同的数据库,为此采用抽象工厂模式设计该系统。以SQL Server和Access两种
(2012年下半年下午试题五)阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 现欲开发一个软件系统,要求能够同时支持多种不同的数据库,为此采用抽象工厂模式设计该系统。以SQL Server和Access两种
admin
2018-07-27
23
问题
(2012年下半年下午试题五)阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
现欲开发一个软件系统,要求能够同时支持多种不同的数据库,为此采用抽象工厂模式设计该系统。以SQL Server和Access两种数据库以及系统中的数据库表Department为例,其类图如图10.23所示。
【C++代码】
#include<iostream>
using namespace std;
class Department{/*代码省略*/};
class IDepartment{
public:
___(1)=0;
___(3)=0;
};
class Sq1serverDepartment: ___(3){
public:
void Insert(Department*department){
cout<<’’Insert a record into Department in SQL Server!\n’’;
//其余代码省略
}
Department GetDepartment(int id){
/*代码省略*/
}
};
class AccessDepartment:___(4){
public:
void Insert(Department*department){
cout<<’’Insert a record into Department in ACCESS!\n’’;
//其余代码省略
}
Department GetDepartment(int id){
/*代码省略*/
}
};
___(5){
public:
___(6)=0;
};
class Sq1SerVerFactory:public IFactory{
public:
IDepartment* CreateDepartment(){ return new SqlserVerDepartment(); }
//其余代码省略
};
class AccessFactory:public IFactory{
public:
IDepartment* CreateDepartment(){ return new AccessDepartment(); }
//其余代码省略
};
选项
答案
(1)virtual void Insert(Department*department) (2)virtual Department GetDepartment(int id) (3)public IDepartment (4)public IDepartment (5)class IFactory (6)virtual IDepartment*CreateDepartment()
解析
本题考查抽象工厂设计模式的概念及其应用。
抽象工厂设计模式的意图是:提供一个创建一系列相关或相互依赖的对象,而无须指出它们具体的类。在如下情况下应当考虑使用抽象工厂模式。
当一个系统要独立于它的产品的创建、组合和表示时。
当一个系统要由多个产品系列中的一个来配置时。
当需要强调一系列相关的产品对象的设计以便进行联合使用时。
当想提供一组对象而不显示它们的实现过程,只显示它们的接口时。
抽象工厂设计模式的类图如图10.24所示,其中:
Abstractory为抽象工厂,声明抽象产品的方法;
ConcreteFactory为具体工厂,执行生成抽象产品的方法,生成一个具体的产品;
ProductA和ProductB为抽象产品,为一种产品声明接口;
ProductA1/A2/B1/B2为具体产品,定义具体工厂生成的具体产品的对象,实现产
品接口。
图10.23中的IFactory对应图10.24中的Abstractory,Sq1serverFactory和AccessFactory对应图10.24中的ConcreteFactory,SqlserverDepartment和AccessDepartment对应图10.24中的ProductA1/A2/B1/B2,而IDepartment对应图10.24中的ProductA和ProductB。
由于类IDepartment的作用是为其子类提供接口,所以将其定义为抽象类。在C++中,抽象类中至少包含一个纯虚函数的类,而纯虚函数是没有函数体的函数,其作用是为其子类提供统一的接151。若要使用纯虚函数,必须在子类中进行重置。空(1)处和空(2)处考查的是如何定义抽象类IDepartment。从IDepartment的子类的方法中可以确定空(1)处应填入virtualvoid InseIrt(Department*department),空(2)处应填入virtual Department GetDepartment(int id)。
空(3)处和空(4)处考查继承的概念和语法。由于Sq1serverDepartment和AccessDepartment均继承IDepartment,因此,空(3)处和空(4)处都应填入public IDepartment。
由于所给程序中缺少有关抽象类IFactory的定义,因此空(5)处应为定义类IFactory,应填入class IFactory。抽象类IFactory中至少需包含一个纯虚函数的类,由其子类Sq1serverFactory和AccessFactory中方法的定义可知,空(6)处应填入virtual IDepartment*CreateDepartment()。
转载请注明原文地址:https://kaotiyun.com/show/ozxZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
从下列的2道试题(试题5、试题6)中任选1道解答。如果解答的试题数超过1道,则题号小的1道解答有效。请认真阅读下列有关于路由器配置的技术说明,根据要求回答问题1至问题5。【说明】菜地市级水电站网络除了和远程子网172.20.0.0/24
阅读以下说明,回答问题1、问题2、问题3、问题4和问题5,将解答填入对应栏内。[说明]以太网宽带接入方式是目前许多居民小区所普遍采用的,其方式为所有用户都通过一条主干线接入Internet,每个用户均配备个人的私有IP地址,用户只需将小区
阅读以下说明,将应填入(n)处的解答填写在对应栏内。【说明】某网络结构如图5-7所示,如果Router3与网络4之间的线路突然中断,按照RIP路由协议的实现方法,路
阅读以下说明,回答问题1~4。【说明】A公司用一台Web服务器和一台应用服务器来管理销售信息。销售人员在办公室时通过PC机来访问应用服务器,若在公司以外,则通过具有数据显示功能的移动电话或PDA(PersonalDigitalAssi
阅读以下说明,回答问题1和问题2。【说明】二层隧道协议L2TP(Layer2TunnelingProtocol)是一种基于点对点协议PPP的二层隧道协议。某网络结构如图2-7所示,采用L2TP来实现网络安全。
阅读以下关于网络应用系统可靠性分析方面的技术说明,根据要求回答问题1至问题4。【说明】可靠性是一个网络应用系统能正常工作的能力,一般用平均故障间隔时间(MTBF)来度量。某网络应用软件研发公司正在开发一个嵌入式实时应用软件——宽带路由器的NanO
认真阅读以下实现VLAN间路由的配置技术说明,根据要求回答问题1至问题6。【说明】当交换机上的VLAN数量很多时,通常会采用路由器快速以太网子接,及IEEE802.1Q封装对VLAN间的数据进行路由。在如图3-12所示的拓扑图中,在交换机
在安装RedhatLinux9.0操作系统的过程中,如果没有选择安装Web服务器,Apache服务器则需要手动安装。现从http://httpd.apache.org网站上免费下载了一个apache-2.2.3RPM格式的软件包,请将以下(1)空缺处
在图8-12所示的拓扑结构中的代理服务器上依次单击“开始→程序→管理工具→路由与远程访问,并在系统弹出的界面中打开“IP路由选择”目录树,然后用鼠标右键单击“NAT/基本防火墙”,选择[新增接口]命令。接着若选择接口1的“本地连接”,最后进行如图8-13所
随机试题
急性化脓性阑尾炎,主要的病理改变是指_______。
AOSC最常见的病因是
影响器官血流量的是影响血液总量的是
甲于某晚9时驾驶货车在县城主干道超车时,逆行进入对向车道,撞上乙驾驶的小轿车,乙被卡在车内无法动弹,乙车内黄某当场死亡、胡某受重伤。后查明,乙无驾驶资格,事发时略有超速,且未采取有效制动措施(事实一)。甲驾车逃逸。急救人员5分钟后赶到现场,胡某因伤势过重
以下说法不正确的是()
对于实行核准制的企业投资项目,项目核准机构的部分工作内容包括:①委托评估;②受理申报;③核准决定;④征求公众意见和专家评议。上述工作正确的顺序是()。
关于不同类型项目的参与范围和参与程度,下列表述正确的有( )。
在心理咨询过程中心理咨询师与求助者之间的人际距离是()。
在基层,特别是一些乡村街队等基层组织,常年不开会现象比较突出.有人称之为“会荒”,假如你是下派某村的驻村干部,为了解决乡村街队等基层“会荒”问题。请你提出自己的工作设想。
在最坏情况下
最新回复
(
0
)