首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C++代码,将应填入(1)~(6)处的字句写在答题纸的对应栏内。 【说明】 现欲开发一个软件系统,要求能够同时支持多种不同的数据库,为此采用抽象工厂模式设计该系统。以SQL Server和Access两种数据库以及系统中的数据
阅读下列说明和C++代码,将应填入(1)~(6)处的字句写在答题纸的对应栏内。 【说明】 现欲开发一个软件系统,要求能够同时支持多种不同的数据库,为此采用抽象工厂模式设计该系统。以SQL Server和Access两种数据库以及系统中的数据
admin
2013-07-09
58
问题
阅读下列说明和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
软件设计师下午应用技术考试
软考中级
相关试题推荐
在计算机外部设备和主存之间直接传送而不是由CPU执行程序指令进行数据传送的控制方式称为(5)________________。
若浮点数的阶码用移码表示,尾数用补码表示。两规格化浮点数相乘,最后对结果规格化时,右规的右移位数最多为(2)位。
某软件设计师自行将他人使用C程序语言开发的控制程序转换为机器语言形式的控制程序,并固化在芯片中,该软件设计师的行为(15)。
在计算机系统中,构成虚拟存储器(8)。
(60)是功能测试工具。
由于操作系统升级而对软件进行修改的行为属于________维护。
设X、Y、Z为逻辑变量,当且仅当X和Y同时为1时,Z为0,其他情况下Z为1,则对应的逻辑表达式为________。
_______是构成我国保护计算机软件著作权的两个基本法律文件。
阅读以下说明,回答问题1至问题4,将解答填入答题纸的对应栏内。[说明]A公司用1台Web服务器和1台应用服务器来管理销售信息。销售人员在办公室时通过PC机来访问应用服务器,若在公司以外,则通过具有数据显示功能的移动电话或PDA(Perso
双绞线可以制作成直连线和交叉线两种形式。在上图中,两个交换机的UPLINK口相连,使用的双绞线制作成什么形式?连接交换机和计算机的双绞线制作成什么形式?阅读下面的配置信息,解释(7)处的命令。Switch#configtSwitch(
随机试题
Heusedlanguagethatdoesnot______amanofhiseducation.
《行政处罚法》的立法目的是()。
生活垃圾填埋场不得建在下列地区()。
背景资料:某房地产开发公司投资建造一座写字楼,钢筋混凝土结构,设计项目已明确,功能布局及工程范围都已确定,业主为减少建设周期,尽快获得投资收益,施工图设计未完成时就进行了招标。(1)招标工作中发生了以下事件:①招标文件规定本地区单位参加投标不需要垫资
北方冬季寒冷,某居民购买了一台可移动式电热器用于取暖,其功率低于3kW且放在不燃材料制作的工作台上,那么它与周围可燃物应保持()m以上的距离。
2019年国务院政府工作报告指出,要继续创新和完善宏观调控,确保经济运行在合理区间。下列与其相关的表述错误的是()。
设常数k>0,则级数().
Themajorityofpeople,aboutnineoutoften,areright-handed.【C1】______untilrecently,peoplewhowereleft-handedwerecons
WherehasAnnbeen?
Theperiodofadolescence,i.e.,theperiodbetweenchildhoodandadulthood,maybelongorshort,dependingonsocialexpectati
最新回复
(
0
)