首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 现欲开发一个软件系统,要求能够同时支持多种不同的数据库,为此采用抽象工厂模式设计该系统。以SQL Server和Access两种数据库以及系统中的数据库表Department
阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 现欲开发一个软件系统,要求能够同时支持多种不同的数据库,为此采用抽象工厂模式设计该系统。以SQL Server和Access两种数据库以及系统中的数据库表Department
admin
2014-11-13
72
问题
阅读下列说明和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执行指令时,先要根据程序计数器将指令从内存读取出并送入______,然后译码并执行。
[配置路由器信息]Currentconfiguration:!version11.3noservicepassword-encryption!hostnamerouter1
阅读以下说明,回答问题1至问题4,将解答填入答题纸的对应栏内。[说明]A公司用1台Web服务器和1台应用服务器来管理销售信息。销售人员在办公室时通过PC机来访问应用服务器,若在公司以外,则通过具有数据显示功能的移动电话或PDA(Perso
阅读以下说明,回答问题1至问题7。[说明]在IMail管理器中,选中MailUser邮件主机,然后在它右边的面板中选中General选项卡,出现邮件主机的配置窗口如图3-1所示。如果在IMail管理器中,选中Userl用户,然后在
阅读以下说明,回答问题1~5。[说明]SSL(SecureSocketLayer)是目前解决传输层安全问题的一个主要协议,其设计的初衷是基于TCP协议之上提供可靠的端到端安全服务,SSL的实施对于上层的应用程序是透明的。应用SSL协议最广泛
双绞线可以制作成直连线和交叉线两种形式。在上图中,两个交换机的UPLINK口相连,使用的双绞线制作成什么形式?连接交换机和计算机的双绞线制作成什么形式?阅读下面的配置信息,解释(5)处的命令。Switch#Switch#config
阅读下面的说明,回答问题1至问题5。[说明]利用VLAN技术可以把物理上连接的网络从逻辑上划分为多个虚拟子网,可以对各个子网实施不同的管理策略。下图表示两个交换机相连,把6台计算机配置成两个VLAN。
该DHCP服务器可分配的IP地址有多少个?在Windows操作系统下,DHCP客户端“Internet协议(TCP/IP)属性”配置界面如下图所示。在此界面中,客户端应如何配置?
网络设计流程通常由以下五个阶段组成:A.确定网络物理结构B.确定网络逻辑结构C.对现有网络的体系结构进行分析D.安装和维护E.需求分析根据网络开发设计的过程,给出上述五个阶段的先后排序:(1)。有线
随机试题
简述企业价值最大化目标的优点。
Thereisnotmuchnewsintoday’spaper,______?
女,28岁。洗澡时发现右乳外侧肿块。查体:右乳外上象限可触及一3cm的肿块,圆形、光滑、质韧、活动度好。该肿块最可能为()
下列药物中,哪些药物含有咪唑环
依《票据法》的规定,下列有关汇票记载事项的哪一表述是正确的?
设备的无形磨损决定设备的()。
系统测试工作按()四个步骤进行。
由于教师劳动的个人性质和自由性,在某种意义上,教师的劳动就表现为“良心活”的特点。()
Rubidium,potassiumandcarbonarethreecommonelementsusedtodatethehistoryofEarth.Theratesofradioactivedecayoft
Thatistheday______hefoundhisnewjob.
最新回复
(
0
)