首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C++代码,将应填入(1)~(6)处的字句写在答题纸的对应栏内。 【说明】 现欲开发一个软件系统,要求能够同时支持多种不同的数据库,为此采用抽象工厂模式设计该系统。以SQL Server和Access两种数据库以及系统中的数据
阅读下列说明和C++代码,将应填入(1)~(6)处的字句写在答题纸的对应栏内。 【说明】 现欲开发一个软件系统,要求能够同时支持多种不同的数据库,为此采用抽象工厂模式设计该系统。以SQL Server和Access两种数据库以及系统中的数据
admin
2013-07-09
107
问题
阅读下列说明和C++代码,将应填入(1)~(6)处的字句写在答题纸的对应栏内。
【说明】
现欲开发一个软件系统,要求能够同时支持多种不同的数据库,为此采用抽象工厂模式设计该系统。以SQL Server和Access两种数据库以及系统中的数据库表Department为例,其类图如图5—1所示。
【C++代码】
#include<iostream>
using namespace std;
class Department{/*代码省略*/};
class IDepartment{
public:
(1)
=0;
(2)
=0;
}
class SqlserVerDepartment:
(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 sqlserVerFactory: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()
解析
本题考查抽象工厂设计模式的概念及其应用。
抽象工厂设计模式的意图是:提供一个创建一系列相关或相互依赖的对象,而无须指出它们具体的类。在如下情况下应当考虑使用抽象工厂模式:
.当一个系统要独立于它的产品的创建、组合和表示时;
.当一个系统要由多个产品系列中的一个来配置时;
.当需强调一系列相关的产品对象的设计以便进行联合使用时;
.想提供一组对象而不显示它们的实现过程,只显示它们的接口时。
抽象工厂设计模式的类图如图5—2所示,其中:
.AbstractFactory为抽象工厂,声明抽象产品的
方法。
.ConcreteFactory为具体工厂,执行生成抽象产品的方法,生成一个具体的产品。
.AbstractProduct为抽象产品,为一种产品声明接口。
.Product为具体产品,定义具体工厂生成的具体产品的对象,实现产品接口。
图5-1中的Ifactory对应类图中的AbstractFactory、Sqlserverfactory和Accessfactory对应类图中的Concrete-Factory、SqlserverDepartment和AccessDepartment对应类图中的Product,而IDepartment对应类图中的Abstract-Product。
由于类IDepartment的作用是为其子类提供接口,所以将其定义为抽象类。在C++中,抽象类中至少包含一个纯虚函数的类,而纯虚函数是没有函数体的函数,其作用是为其子类提供统一的接口。若要使用纯虚函数,必须在子类中进行重置。(1)和(2)考查的是如何定义抽象类IDep-artment。从IDepartment的子类的方法中可以确定(1)处应填入virtual void Insert(Department*department),(2)处应填入virtualDepartment GetDepartment(int id)。
(3)和(4)考查继承的概念和语法。由于SqlserverDepartment和AccessDepartment均继承IDepartment,因此,(3)和(4)都应填入public IDepartment。
由于所给程序中缺少有关抽象类Ifactory的定义,因此(5)处应为定义类Ifactory,应填入class Ifactory。抽象类Ifactory中至少需包含一个纯虚函数的类,由其子类Sqlserverfactory和Aecessfactory中方法的定义可知,(6)处应填入virtual IDepartment*CreateDepartment()。
转载请注明原文地址:https://kaotiyun.com/show/RiDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
某系统中,模块A处理与销售相关的所有细节,仅需要发送一个包含销售量、价格和时间的报表到模块B,则这两个模块之间为()耦合。
若浮点数的阶码用移码表示,尾数用补码表示。两规格化浮点数相乘,最后对结果规格化时,右规的右移位数最多为(2)位。
标准符合性测试是软件测试的工作之,这里的标准不包括_______。
下图是一个软件项目的活动图,其中顶点表示项目里程碑,连接顶点的边表示包含的活动,边上的权重表示活动的持续时间(天),则里程碑C在关键路径上。在其他活动按时完成的情况下,活动FJ最多可以晚_______天开始而不影响工期。
以下关于CPU与I/O设备交换数据所用控制方式的叙述中,正确的是_______。
将图2-1中(1)和(2)空缺名称填写在应的位置。使ADSL的传输速率更高有哪两个主要因素?
阅读以下说明,回答问题1至问题6。说明ADSL是接入Internet的一种宽带技术。图2-1为一台带网卡的PC机采用ADSL接入Internet的网络结构图。
阅读以下说明,回答问题1至问题5。[说明]某企业采用Windows2000操作系统部署企业虚拟专用网(VPN),将企业的两个异地网络通过公共Internet安全地互联起来。微软Windows2000操作系统当中对IPSec具备完善的支持,下图
IIS安装的硬盘分区最好选用NTFS格式,是因为(1)和(2)。A.可以针对某个文件或文件夹给不同的用户分配不同的权限B.可以防止网页中的Applet程序访问硬盘中的文件C.可以使用系统自带的文件加密系统对文件或文件夹进行加密
随机试题
以下药中内服剂量最小的是()
影像主观评价的方法不包括
[2015年真题]对开挖后的岩体软弱破碎的大型隧洞围岩,应优先采用的支撑方式为()。
背景资料:某矿业工程项目采用公开招标方式进行施工招标,A、B、C、D、E、F、G共7家施工单位通过了资格预审、并参与项目投标。投标文件编制过程中,施工单位A根据设计图纸复核工程量清单时发现,分部分项工程量清单中某些清单项目的特征描述与设计图纸不符;施工单
下列各项中,属于专业发票的有()。
下列关于物价稳定的说法,正确的是()
图书必备的结构部件不包括()。
根据以下资料,回答下题。2011年末,湖南省中小企业共计18.49万家,较上年增长11.0%,占全省企业总数的99.8%。2011年全省中小企业实现增加值达8154.32亿元,较上年增长16.1%;中小企业增加值占GDP的比重为41.5%,比上年提高0.
关于诗词中反映的生物知识,下列说法错误的是:
在对局域网的运行与维护前,首先要判断其拓扑结构和信道访问方式,然后要判断其故障类型,网络故障的分类方法不尽相同,一般可以根据故障的性质分为(1)和(2)。随着IntCmet的广泛应用,为了保证网络稳定运行,网络安全性尤为重要,而防火墙是一种综合性的技术
最新回复
(
0
)