适于多种数据库访问的抽象工厂模式研究.docVIP

适于多种数据库访问的抽象工厂模式研究.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
适于多种数据库访问的抽象工厂模式研究.doc

适于多种数据库访问的抽象工厂模式研究   摘 要: 本文将抽象工厂模式应用到WEB程序的数据库访问中,体现了抽象工厂模式高度封装性的优势,最大限度的实现了代码复用。   关键词:抽象工厂模式 WEB程序 数据访问层   多数WEB程序离不开数据库的访问,如何使软件设计适用于多种数据库的需求,以提高程序的扩展性和代码复用率,这是程序设计人员必然面临的问题。使用抽象工厂模式可以很好地解决该问题。   一、抽象工厂模式概述   抽象工厂模式是GoF的《Design Patterns》一书描述的创建型模式之一,是所有形态的工厂模式中最为抽象和最具一般性的一种形态。抽象工厂模式向具体产品提供一个接口,使客户端在不必指定产品的具体的情况下,创建多个产品族中的产品对象[1]。   二、抽象工厂模式在WEB程序中的应用设计   为了使WEB程序适用于多种数据库,诸如SQL Server、ACCESS等,在数据访问层设计中使用抽象工厂模式。首先,设计抽象工厂类DataAccessFactory,该类根据用户需求创建具体的数据访问工厂,如:访问SQL Server数据库的SqlData工厂和访问ACCESS数据库的AccessData工厂;其次,由SqlData工厂和AccessData工厂分别创建具体的对象产品。用户在使用时无需关心自己使用的是什么工厂,通过统一的接口可以实现对不同数据库的访问。   (一)设计抽象工厂类DataAccessFactory   在DataAccessFactory类中包括获取数据库连接字符串和数据库类型的信息,并定义创建具体工厂类的方法。   默认数据库类型:public static readonly string ConnDatabaseType =ConfigurationManager.AppSettings[DatabaseType];   数据库类型属性:DatabaseType DatabaseType{get;}   数据库连接对象属性:IDbConnection DbConnection{get;}   创建具体工厂类的方法:   public static DataAccess CreateDataAccess(){   DataAccess dataAccess; // DataAccess是提供数据库访问功能的接口   switch(ConnDatabaseType) {   case(DatabaseType.MSSQLServer):   dataAccess = new SqlDataAccess(pp.ConnectionString);   break;   case (DatabaseType.Oracle):   dataAccess = new OracleDataAccess(pp.ConnectionString);   break;   case (DatabaseType.OleDBSupported   dataAccess = new OleDbDataAccess(pp.ConnectionString);   break;}   return dataAccess; }   其中,DataAccess接口包括访问数据库的方法的定义,如:打开连接操作Open(),关闭连接操作 Close(),执行查询的操作DataSet ExecuteDataset(string commandType ,string commandText)及其重载方法等。   为了实现DataAccess接口中的Open方法和Close方法,定义了抽象类AbstractDataAccess。包括:   Open方法和Close方法的实现:   public void Open(){   if(this.DbConnection.State.Equals(ConnectionState.Closed))   this.DbConnection.Open();}   public void Close(){   if(this.DbConnection.State.Equals(ConnectionState.Open))   this.DbConnection.Close();}   (二)设计具体工厂类SqlData   SqlData类继承AbstractDataAccess,重写属性和操作数据库的方法。   public override DatabaseType DatabaseType{   get{return DatabaseType.MSSQLServer;} }   (三)数据访问层应

文档评论(0)

sis_lxf + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档