首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 现欲开发一个软件系统,要求能够同时支持多种不同的数据库,为此采用抽象工厂模式设计该系统。以SQL Server和Access两种数据库以及系统中的数据库表Department
阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 现欲开发一个软件系统,要求能够同时支持多种不同的数据库,为此采用抽象工厂模式设计该系统。以SQL Server和Access两种数据库以及系统中的数据库表Department
admin
2014-11-13
62
问题
阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
现欲开发一个软件系统,要求能够同时支持多种不同的数据库,为此采用抽象工厂模式设计该系统。以SQL Server和Access两种数据库以及系统中的数据库表Department为例,其类图如图16—3所示。
【C++代码】
#include
US ing namespace std;
class Department(/*代码省略*/);
Class IDepartment(
publ ic:
(1) =0;
(2) =0;
}
Class SqlserverDepartment: (3) {
public:
void Insert(Department*department)(
cout<<”Insert a record into Department in SQL Server!\n*;
//其余代码省略
}
Department GetDepar七men七(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:publ ic IFactory{
public:
IDepartment* CreateDepartment()( return new Sql serVerDepartment(); }
//其余代码省略
};
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*Create Department()
解析
本题考查抽象工厂设计模式的概念及其应用。抽象工厂设计模式的意图是:提供一个创建一系列相关或相互依赖的对象,而无须指出它们具体的类。在如下情况下应当考虑使用抽象工厂模式:当一个系统要独立于它的产品的创建、组合和表示时;当一个系统要由多个产品系列中的一个来配置时;当需强调一系列相关的产品对象的设计以便进行联合使用时;想提供一组对象而不显示它们的实现过程,只显示它们的接口时。抽象工厂设计模式的类图如图16—4所示,其中:
Abstract Factory为抽象工厂,声明抽象产品的方法。Concrete Factory为具体工厂,执行生成抽象产品的方法,生成一个具体的产品。Abstract Product为抽象产品,为一种产品声明接口。Product为具体产品,定义具体工厂生成的具体产品的对象,实现产品接口。图16.3中的IFactory对应类图中的AbstractFactory,Sqlserverfactory和Accessfactory对应类图中的Concrete Factory,SqlserVer Depanment和AccessDepartment对应类图中I~Product,而IDepanment对应类图中的Abstract Product。由于类IDepartment的作用是为其子类提供接口,所以将其定义为抽象类。在C++中,抽象类中至少包含一个纯虚函数的类,而纯虚函数是没有函数体的函数,其作用是为其子类提供统一的接口。若要使用纯虚函数,必须存子类中进行重置。空(1)和空(2)考查的是如何定义抽象类IDepartment。从IDepartment的子类的方法中可以确定空(1)处应填Avirtual void Insert(Department*department),空(2)处应填Avirtual DepartmentGetDepartment(int id)。空(3)和空(4)考查继承的概念和语法。由于SqlserverDepartment和AccessDepanment均继承IDepartment,因此,空(3)和空(4)都应填),.public IDepartment。由于所给程序中缺少有关抽象类IFactory的定义,因此空(5)处应为定义类IFactory,应填Aclass IFactory。抽象类IFactoryq~少需包含一个纯虚函数的类,由其子类sqlserVerfactory和Accessfactory中方法的定义可知,(6)处应填入virtual IDepartment*CreateDepartmentO。
转载请注明原文地址:https://kaotiyun.com/show/V4DZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
CPU执行指令时,先要根据程序计数器将指令从内存读取出并送入______,然后译码并执行。
在由L2TP构建的VPN中,主要由①和②两种类型的服务器构成。1.将图5-1中①和②处空缺名称填写在答题纸的相应位置。2.简要说明两种服务器的主要作用。某路由器(在图5-1中没有标出)的部分配置信息如下所示,请解释其中标有下划线部分的含
造成故障1的原因是什么?如何解决?1.将故障2中(1)和(2)两处合适的答案填入答题纸相应的解答栏内。2.故障2如何解决?
阅读以下说明,回答问题1至问题6。说明ADSL是接入Internet的一种宽带技术。图2-1为一台带网卡的PC机采用ADSL接入Internet的网络结构图。
阅读以下说明,回答问题1~6。[说明]某公司已有一个100用户的有线局域网。由于业务的发展,现有的网络不能满足需求,需要增加40个用户的网络连接,并在公司客户接待室连接网络以满足合作伙伴实时咨询的需求。现结合公司的实际情况组建无线局域网,具体拓扑
阅读下面的说明,回答问题1至问题5。[说明]利用VLAN技术可以把物理上连接的网络从逻辑上划分为多个虚拟子网,可以对各个子网实施不同的管理策略。下图表示两个交换机相连,把6台计算机配置成两个VLAN。
根据图3-1所给出的网络连接方式及相关的网络参数,区域(A)与区域(B)中计算机的网络参数配置(如图3-2所示)为:区域(A)计算机“IP地址”(范围):(1):区域(A)计算机“子网掩码”;(2);区域(A)计算机“默认网关”:(
启动init进程前,不需要经过______步骤。A.LIIO加载内核B.检测内存C.加载文件系统D.启动网络支持在系统控制台,______用Ctrl+Alt+Delete组合键来重新引导服务器。A.允许B
阅读以下说明,回答问题1至问题8。[说明]Linux系统开机引导时首先启动内核,由内核检查和初始化硬件设备,载入设备的驱动程序模块,安装root文件系统,然后内核将启动一个名为init的进程。在init运行完成并启动其他必要的后续进程后,
网络设计流程通常由以下五个阶段组成:A.确定网络物理结构B.确定网络逻辑结构C.对现有网络的体系结构进行分析D.安装和维护E.需求分析根据网络开发设计的过程,给出上述五个阶段的先后排序:(1)。为上
随机试题
CouplesarerestrictingthesizeoftheirfamiliesintheUKbecauseofcashworriesbroughtonbythefinancialcrisisandthe
A、HBsAgB、抗-HBsC、HBcAgD、抗-HBeE、HBeAg存在于受感染的肝细胞核内,不游离于血清中的是
绝经后阴道不规则出血应考虑以下哪些疾病()
非持股多元化型年薪制的薪酬结构是()。
(2001年)某股份有限公司(本题下称“股份公司”)是一家于2000年8月在上海证券交易所上市的上市公司。该公司董事会于2001年3月28日召开会议,该次会议召开的情况以及讨论的有关问题如下:(1)股份公司董事会由7名董事组成。出席该次会议的董事有董事A
下列各项中,属于企业生产经营期间资本性支出的是()。
检验认识的真理性,就是检验______。
Sheissucha________person,alwaysaskinghowI’mfeeling.
Whatisthenewestproblemfacingpeoplewhodrivetoschool?
TakingEarlyRetirementMayRetireMemory,TooThetwoeconomistscalltheirpaper"MentalRetirement",andtheirargumenth
最新回复
(
0
)