设为首页  
联系我们  
加入收藏  
网页制作 冲浪宝典 图形图像 操作系统 软件教学 编程开发 认证考试 安全技术 站长专区 文学驿站 娱乐天地 游戏天地 办公软件
文章搜索
您的位置: 首页 >> 文章首页 >> 软件教学 >> 编程开发 >> 使用设计模式构建通用数据库访问类
精品推荐
编程开发点击TOP10
·Java进阶:JNI使用技巧点滴
·专家手把手教你安装MYSQL数据库
·e书工场--制造电子书全攻略
·删除流氓的SQL Server2005
·我的第一个VB程序--“跟我来学VB神童教程”
·Authorware自制拼图游戏
·使用Quick CHM软件轻松编译CHM格式的文件
·DIY自己常用的软件eXeScope
·用Authorware制作自检测在线答题系统
·精细讲述SQL Server数据库备份多种方法
软件教学点击TOP10
·自己动手制作USB启动盘快速简单
·学用金山游侠修改游戏
·几百个软件注册机
·常用软件序列号
·用eBook Edit 自己动手制作exe型电子书
·应用软件注册码大全(最新整理) 1
·Windows Media Player同步歌词秀全攻略
·五分钟玩转电脑迷共享空间
·冰点还原(DeepFreeze)使用帮助
·液晶显示器测试小工具--Monitors Matter CheckScreen
精选专题

使用设计模式构建通用数据库访问类

作者: 来源:网络文章 时间:2005-12-13 15:07:03

使用设计模式构建通用数据库访问类(4)
现在我们已经完成了所要的功能,下面,我们需要创建一个Factory类,来实现自动数据库切换的管理。这个类很简单,主要的功能就是根据数据库连接字符串,判断使用什么数据库,然后,返回适当的数据库操纵类。在这里,判断的方法很简单,只是根据两种数据库连接字符串的不同来判断。在实际中,随着数据库类的增加,判断的方法可能会有所变化,读者应当根据自己的实际情况来做相应的调整。

public class DBOperatorFactory
{
public static DBOperator GetDBOperator(string strConnection)
{
  if(strConnection.IndexOf("provider=")<0) //SqlServer
{
  return new SqlDBOperator(strConnection);
}
  else //other database
{
  return new OleDBOperator(strConnection);
}
}
}

好了,现在,一切都完成了,客户端在代码调用的时候,可能就是采用如下形式:

DBOperator db=DBOperatorFactory.GetDBOperator(strConnection)
db.Open();
db.需要的操作
db.Close();

或者:
DBOperator db=DBOperatorFactory.GetDBOperator(strConnection)
db.Open();db.BeginTrans();
try
{
db.需要的操作
db.CommitTrans();
}
catch
{
db.RollbackTrans();
}
db.Close();

当数据库发生变化的时候,DBOperatorFactory会根据数据库连接字符串自动调用相应的类,客户端不会感觉到变化,也不用去关心。这样,实现了良好的封装性。当然,前提是,你在编写程序的时候,没有用到特定数据库的特性,例如,Sql Server的专用函数。

实际上,Factory模式也可以不使用Factory类来实现,而是让接口抽象类自己来管理,这可以称作自管理的Factory,是Factory模式的一种变形。这么做的好处,是可以免去一个Factory类,使代码更加简练。这么做,我们需要对DBOperator类做一些改变,增加一个Instance方法。这也是对DBOperator采用抽象类而不是接口的原因(接口的方法不能有实现),代码如下:

public static DBOperator Instance(string strConnection)
{
if(strConnection.IndexOf("provider=")<0) //SqlServer
{
return new SqlDBOperator(strConnection);
}
else //other database
{
return new OleDBOperator(strConnection);
}
}

  然后,客户端代码就可能是类似于下面的形式:

DBOperator db= DBOperator.Instance(strConnection)
db.Open();
db.需要的操作
db.Close();


下面来看看连接池的做法,方法就是Singleton。

先看Singleton模式的经典含义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。推而广之,当我们需要精确控制类在系统中的实例的个数的时候,就可以使用Singleton模式。现在,我们需要构建一个缓冲池,保存数据库类的实例,正好是Singleton模式发挥作用的时候。

共5页 9 7 [1] [2] [3] [4] [58 :>

使用设计模式构建通用数据库访问类 相关文章:
使用设计模式构建通用数据库访问类 相关软件:
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
转载请注明来源:http://www.xgdown.com