2、定义针对于不同数据库的工厂类
定义针对于不同数据库的工厂类,一种数据库就需要创建一个相应的类。最主要代码就是创建不同数据库需要使用的对应的Connection,Command等等对象。这些代码很相似,所以最常见的做法就是先定义一个基类,并且在基类中使用分支语句。
例如在基类中创建连接对象的代码:
public IDbConnection CreateConnection(string DataBaseType)
{
switch (DataBaseType )
{
case "SqlServer":
{
return new System.Data.Oledb.SqlConnection(sConnectionString);
}
case "Oracle":
{
return new System.Data.Oledb.SqlConnection (sConnectionString);
}
case "Access ":
{
return new System.Data.Oledb.SqlConnection (sConnectionString);
}
…
}
}
这样的代码没有使用反射机制,类的实例化被“写死”在代码中,也就是说,如果需要添加其他数据库,不得不打开源代码,添加一个分支并重新编译。为了去处这种分支结构,并且在运行时根据系统提供的参数动态实例化数据库对象,我们引入了反射机制。
转载于:https://blog.51cto.com/apprentice/1360591
本文介绍了一种用于创建针对不同数据库类型的连接对象的工厂模式实现。通过定义一个基类并在其中使用分支语句来创建如 SqlConnection 对象等,使得系统能够根据不同数据库类型动态选择合适的连接方式。为提高灵活性,还引入了反射机制以支持运行时动态实例化。

被折叠的 条评论
为什么被折叠?



