一、数据库工厂模式介绍
网上搜索下,有很多关于数据库工厂模式的资料,在这边提供个人对数据库工厂模式的理解,我认为的数据库工厂是这样的:把对数据库的操作组件交给工厂去做,而调用方不必知道需要调用什么组件来操作特定的数据库。比如:IDbConnection (数据库连接对象)、IDbCommand (Command对象)、IDbDataAdapter( 数据适配器对象)、IDbTransaction (数据库事物对象)、IDataReader (数据阅读器对象)等等,这些操作可以在IDBFactory(数据库工厂接口)中定义,那么我们定义MSSqlDbFactory (mssql工厂类)、OdbcFactory(odbc工厂类)、OledbFactory (oledb工厂类)等等,就可以继承IDBFactory(数据库工厂接口),通过数据库工厂类来实现对不同数据库的操作,由于接口具有约束作用即:继承IDBFactory(数据库工厂接口)的类都必须全部实现IDBFactory(数据库工厂接口)中定义的全部方法,所以我们可以通过IDBFactory(数据库工厂接口)实例化数据库工厂类来调用接口中的方法,而不必关心接口的具体实现,来达到数据库工厂操作的目的。
以上为大概的现实思路,如有更好的现实思路或者有不对的地方可以大家一起讨论研究下,谢谢!
二、数据库工厂的代码实现
第一点介绍了数据库工厂模式的实现思路,接下来我们贴上代码来实现上述内容。
IDbFactory 接口
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
namespace DataBase
{
public interface IDBFactory
{
/// <summary>
/// 数据库连接字符串
/// </summary>
string ConnStr { get; set; }
/// <summary>
/// <span style="font-family: Arial, Helvetica, sans-serif;">建立Connection对象</span>
/// </summary>
/// <returns>Connection对象</returns>
IDbConnection CreateConnection();
/// <su