首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
某制造企业为拓展网上销售业务,委托某软件企业开发一套电子商务网站。初期仅解决基本的网上销售、订单等功能需求。该软件企业很快决定基于NET平台和SQL Server数据库进行开发,但在数据库访问方式上出现了争议。王工认为应该采用程序在线访问的方式访问数据库
某制造企业为拓展网上销售业务,委托某软件企业开发一套电子商务网站。初期仅解决基本的网上销售、订单等功能需求。该软件企业很快决定基于NET平台和SQL Server数据库进行开发,但在数据库访问方式上出现了争议。王工认为应该采用程序在线访问的方式访问数据库
admin
2019-02-25
39
问题
某制造企业为拓展网上销售业务,委托某软件企业开发一套电子商务网站。初期仅解决基本的网上销售、订单等功能需求。该软件企业很快决定基于NET平台和SQL Server数据库进行开发,但在数据库访问方式上出现了争议。王工认为应该采用程序在线访问的方式访问数据库;而李工认为本企业内部程序员缺乏数据库开发经验,而且应用简单,应该采用ORM(对象关系映射)方式。最终经过综合考虑,该软件企业采用了李工的建议。
随着业务的发展,该电子商务网站逐渐发展成一个通用的电子商务平台,销售多家制造企业的产品,电子商务平台的功能也日益复杂。目前急需对该电子商务网站进行改造,以支持对多种异构数据库平台的数据访问,同时满足复杂的数据管理需求。该软件企业针对上述需求,对电子商务网站的架构进行了重新设计,新增加了数据访问层,同时采用工厂设计模式解决异构数据库访问的问题。新设计的系统架构如图4—1所示。
应用程序设计中,数据库访问需要良好的封装性和可维护性,因此经常使用工厂设计模式来实现对数据库访问的封装。请解释工厂设计模式,并说明其优点和应用场景;请解释说明工厂模式在数据访问层中的应用。
选项
答案
工厂设计模式定义了创建对象的接口,允许子类决定实例化哪个类,而且允许请求者无须知道要被实例化的特定类,这样可以在不修改代码的情况下引入新类。 优点是(1)没有了将应用程序类绑定到代码中的要求,可以使用任何实现了接口的类;(2)允许子类提供对象的扩展版本。 工厂设计模式的应用场景有:(1)类不能预料它必须创建的对象的类;(2)类希望其子类指定它要创建的对象。 在数据访问层定义采用工程模式,定义统一的操纵数据库的接口,然后根据数据库的不同,由类工厂来决定实例化哪个类。在具体类中实现特定的数据库访问类。这样,就可以实现由客户端指定或根据配置文件来选择访问不同的数据库,从而实现应用程序与数据库无关。
解析
在应用程序设计中,需要对数据库访问进行良好的封装,使其具有良好的可维护性,尽量使得应用程序与数据库无关。本题中,应用系统需要访问异构数据源,在应用程序中会存在多种数据访问接口。因此在实际开发中,需要对这些访问接口再做一次封装,这样可以减少操作数据库的步骤,减少代码编写量。工厂设计模式是使用的主要方法。
工厂设计模式定义了创建对象的接口,允许子类决定实例化哪个类,而且允许请求者无须知道要被实例化的特定类,这样可以在不修改代码的情况下引入新类。优点是:没有了将应用程序类绑定到代码中的要求,可以使用任何实现了接口的类;允许子类提供对象的扩展版本。工厂设计模式的应用场景有:类不能预料它必须创建的对象的类,类希望其子类指定它要创建的对象。
在数据访问层定义采用工程模式,定义统一的操纵数据库的接口,然后根据数据库的不同,由类工厂来决定实例化哪个类。在具体类中实现特定的数据库访问类。这样,就可以实现由客户端指定或根据配置文件来选择访问不同的数据库,从而实现应用程序与数据库无关。
转载请注明原文地址:https://kaotiyun.com/show/CAQZ777K
本试题收录于:
系统架构师下午案例分析考试题库软考高级分类
0
系统架构师下午案例分析考试
软考高级
相关试题推荐
Brothersandsistersfight,butwhenthebickeringevolvesintophysicaloremotionalabuse,it’sbullying.Ordinaryargumentso
输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如输入“Iamastudent.”,则输出“student.aamI”。
定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)。
判断单链表中是否存在环(网上说的笔试题)
公司要求开发一个继承System.Windows.Forms.ListView类的组件,要求达到以下的特殊功能:点击ListView各列列头时,能按照点击列的每行值进行重排视图中的所有行(排序的方式如DataGrid相似)。根据您的知识,请简要谈一下您的
列举一下你所了解的XML技术及其应用
输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。要求时间复杂度为O(n)。
在OutlookExpress中,请安接收时间的升序方式将所有邮件重新排序。
在【管理工具】的【计算机管理】窗口中,查看用FTP的属性,并将其从用户组中删除。
CPUsandoperatingsystemscanworkintwomaintypesofmultitaskingmodes.Whatcontrolsaccessandtheuseofsystemresource
随机试题
男性,52岁。高血压5年。4小时前突然出现持续胸痛来诊。心电图如上图,查体:心音低钝,血压150/70mmHg。提问6:下列哪些药物对患者的预后改善有益A.胺碘酮B.美托洛尔C.阿司匹林D.雷米普利E.辛伐他汀
房地产市场也存在资产市场和()这两个层面。
汽轮机转子安装分为()。
应急消防气压给水设备的公称直径不宜小于()mm。
保本基金在募集说明书中明确规定了相关的担保条款,任何投资者的本金和收益都有保障。()
在个别资本成本的计算中,需要考虑筹资费用影响的有()。
(请根据下文回答)该文的标题应()。
在假设检验中,当样本容量一定时,若缩小犯第一类错误的概率,则犯第二类错误的概率会相应()。[浙江工商大学2012研]
DBMS的完整性控制应具有哪些功能?——一①定义和存储完整性功能②检查完整性功能③控制完整性功能
数据库具有最小冗余度、较高的程序与数据独立性,易于扩充和______的特点。
最新回复
(
0
)