您的位置:首页 > 数据库

工厂(工厂方法)模式实现多数据库的连接

2009-08-24 19:48 507 查看
以前老听别人说多数据库的连接应当用工厂模式处理,当时感觉神秘,没有深究,在学习了工厂模式后,老感觉不对,工厂模式(我开始认为是抽象工厂模式)不是创建产品系列的嘛,也就是创建对象的嘛,多数据库哪有需要创建产品系列,也就是对象的系列,后来想想了感觉用工厂方法还是比较合适的,今天从网上搜索,果然在这里大家所说的工厂模式指的是
工厂方法模式。在这里大概讲一下。
1. 首先定义抽象工厂,创建产品,在这里是数据库连接的实例。
在此可以例如
{
public abstract string DbType
{
get;
}

public  abstract DbDataReader ExecuteDbDataReader(string sql);

public abstract DbConnection Connection
{ get; }

public abstract int ExecuteNonQuery(stirng sql, string[] strParams, object[] strValues, bool isProcedure);

public abstract DataSet GetDataSet(string sql,string[] strParams, object[] strValues,bool isProcedure);

public abstract DataTable GetDataTable(string sql, bool isProcedure);
}

4.然后定义具体产品,可以有sqlserver、oracle什么的,继承抽象工厂,实现抽象工厂的方法或属性。
然后定义确定使用哪种具体产品的方法,目前写了不再例举。
5.定义决定使用哪个工厂的控制类,控制方式可以使用传字符串的方式,或者读配置文件,或者其他方式,推荐配置文件,容易修改,灵活。可以采用反射的形式,也可以不用。推荐反射,灵活获得以插件式的灵活性。在此不写代码 了。
思路如此,一切根据实际情况灵活运用,上面写的没有经过实验,都是构思过程,可能有谬误的地方,欢迎大家拍砖,呵呵。

后记:
现在感觉不用工厂方法也可以 ,反而有些麻烦,其实用简单工厂就行,就是由抽象产品和具体产品,然后有一个生产产品的方法(可以使用工厂里的create)就可以。在方法里决定具体使用哪一个产品。产品即数据库的操作定义。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐