- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
通用数据访问模式的研究.pdf
通用数据访问模式的研究1
陈卫,丁志强,徐劲松
昆明理工大学信息工程与自动化学院,云南昆明(650051)
摘 要: 运用面向对象的设计原则,将代理模式与工厂方法模式相结合,提出了一种新的
通用数据访问模式。该模式能够支持多种关系型数据库管理系统和数据驱动程序,通过将
应用层与数据层隔离,大大减少了系统的耦合性,具有广泛的实际应用前景。
关键词: 复用; 设计原则; 代理模式; 工厂方法模式
中图法分类号: TP31 1 文献标识码: A
1.引言
随着计算机的广泛应用,各行各业的企业都加速自身的信息化建设。大多数信息系统
都不可避免地涉及到数据的存储及访问,有效且优质的数据访问代码,对于现实中任何企
业应用程序的性能和适用性来说,都是至为关键的。要改进现有系统,没有哪种方式比优
[1]
化数据访问代码更好了 。
一般大中型企业中都会有一些早期开发的遗留系统,在对不同系统的整合过程中,会
涉及到调用不同数据库的数据。将企业的业务逻辑与数据访问隔离开来就成为了一个关键
的工作,这样当后台数据库发生变更时,不至于引起客户端程序的大量改动,从而保证了
系统的整体的稳定性与数据访问程序的可移植性。据此,本文提出了一个集中控制且支持
多种数据库平台的数据访问模式。
2. 框架的设计
为了编写可复用、可维护性好的代码,人们在实践经验中逐渐探索出了一些有针对性
的设计方案,而这些设计方案经过人们反复利用与修正,最终形成了某个特定场景下一般
[2],即我们现在通常所说的设计模式。本文所研究的就是数据访问这一特
问题的解决方案
定的应用场景下,实现支持多种RDBMS 的通用数据访问的解决方案。在此框架中我们需要
用到两种最常用的设计模式:Proxy模式和Abstract Factory模式。
2.1 应用 Proxy 设计框架
[4]
根据Proxy模式的机制,我们需要建立三组类 :由关系型数据库表映射成的具体处理
业务的数据对象RealTableX ,用来接受来自所有客户端的数据访问请求并将其转发给
RealTableX 的代理对象TableProxy和为保证代理对象具备代理数据对象的功能,即能在任何
时候能“替代”RealTableX对象的统一接口TableSubject 。
上述的 RealTableX 类为具体业务表类,实际操作中会随着业务的变化而增加或者废弃
一些不需要的数据表,为了适应这种需求的灵活性,我们使用统一的接口来替代 RealTableX
对象,让所有客户使用代理只针对一个接口来访问,而让所有其他的数据库表都继承这个
接口,我们将这个统一的接口命名为 DBTable 。这一改变正是应用了面向
1本课题得到云南省自然科学基金资助项目(2005IT17)。
-1-
[3]
对象技术中的设计原则:Liskov 原则 。通过上面的设计,我们的数据访问的代理模式如
图 1。这些数据库操作按其使用功能,可分为两类:一类是数据库的连接与释放,我们定
义为connect()和close()方法。另一类是对数据的具体操作,这些操作有:数据的查询、删除、
修改、添加功能 (execSelectSQL()、execDeleteSQL()、execUpdateSQL()、execInsertSQL() )
以及事务的处理(begineTrans()、commit()、rollback() )等 (如图 1TableSubject所示)。而
在具体的RealTableX 中我们屏蔽了这些操作。
为了能在保证系统不变性的前提下支持异构数据库管理系统,此模式的 TableProxy 类
必须能够实时的被替换,而其具有的功能没有任何的改变,即实际上我们的系统中有多个
Table
您可能关注的文档
最近下载
- 土地复垦可行性分析zhouqi.docx VIP
- 国开2021《Web开发基础》形考任务1-5题目汇总.doc VIP
- 四、 中国近代化的探索 教学设计 2023~2024学年统编版八年级历史上册.docx
- 2021需氧菌性阴道炎诊治专家共识.pptx VIP
- 小红书2025好势发生营销IP新版图通案.pdf
- 传统村落保护与发展规划.ppt VIP
- 国开2021《Web开发基础》形考任务1-5题目汇总.docx VIP
- 2023人教版(PEP)小学英语(三、四、五、六年级)词汇及常用表达法(课本同步).pdf VIP
- 日立电梯HGE乘客电梯调试指导手册.pdf
- 风电场运维安全管理.pptx VIP
文档评论(0)