首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C++代码,将应填入(1)~(6)处的字句写在答题纸的对应栏内。 【说明】 现欲开发一个软件系统,要求能够同时支持多种不同的数据库,为此采用抽象工厂模式设计该系统。以SQL Server和Access两种数据库以及系统中的数据
阅读下列说明和C++代码,将应填入(1)~(6)处的字句写在答题纸的对应栏内。 【说明】 现欲开发一个软件系统,要求能够同时支持多种不同的数据库,为此采用抽象工厂模式设计该系统。以SQL Server和Access两种数据库以及系统中的数据
admin
2013-07-09
55
问题
阅读下列说明和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://jikaoti.com/ti/fji7FFFM
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
在引入自动化测试工具以前,手工测试遇到的问题包括()。①工作量和时间耗费过于庞大②衡量软件测试工作进展困难③长时间运行的可靠性测试问题④对并发用户进行模拟的问题⑤确定系统的性能瓶颈问题⑥软件测试过程的管
通用的风险分析表应包括()。(54)①风险问题②发生的呵能性③影响的严重性④风险预测值⑤风险优先级
瀑布模型表达了一种系统的、顺序的软件开发方法。以下关于瀑布模型的叙述中,正确的是(17)。
以下不属于软件测试工具的是()。
在分层体系结构中,控制层接收用户的请求并决定调用哪个模型去处理该请求,以及确定选择哪个视图来显示返回的数据。在基于JavaEE平台开发的软件系统中,常用_________技术来实现该层。
关系数据库是表的集合。对视图进行查询,本质上就是查询从_______中获得的数据。
以下描述中,属于通用操作系统基本功能的是_______。
[Java源程序:一个简单的Web服务器]/************************************************************//*WebServer.java*//******
双绞线可以制作成直连线和交叉线两种形式。在上图中,两个交换机的UPLINK口相连,使用的双绞线制作成什么形式?连接交换机和计算机的双绞线制作成什么形式?阅读下面的配置信息,将(1)~(4)处空缺的内容填写在相应位置。SW1>enable
从下列选项中选取合适的答案分别填入图4-1中的(1)~(4)处。A.DES算法B.MD5算法C.会话密钥D.数字证书E.甲的公钥F.甲的私钥G.乙的公钥H.乙的私钥以下关于摘要
随机试题
城市抗震防灾规划应包括()。
从量税税额与下列哪些因素有直接关系?()
患者,女性,36岁,低热、乏力、盗汗2个月,加重伴咳嗽、咳痰1周。胸片示左肺上叶尖段片状模糊影伴空洞形成。体检:左锁骨上咳嗽后闻及湿啰音。以下对诊断最有意义的检查是
心病影响及肺属于脾病影响及肝属于
银行短期借款信用条件中的补偿性余额条款是指(B)。
某大型超市,现浇钢筋混凝土结构,建筑面积11000m2,局部设置吊顶。根据规范要求,超市设置有湿式自动喷水灭火系统。则自喷系统喷头形式不包含()。
甲委托乙用货车将一批水果运往A地,不料途中遭遇山洪,水果全部毁损。甲委托乙运输时已向乙支付运费。根据合同法律制度的规定,下列表述中,正确的有()。
________,明末清初卓越的大画家,字雪个,又字八大山人等。
根据下图,回答以下问题。2013年4月至2015年4月期间,全国租赁贸易进出口总额环比增速最高的月份同比增长量为多少亿美_________。
Theinexperiencedteacherspokewith______ofnervousness.
最新回复
(
0
)