public interface IDBFactory { IDbConnection CreateDbConnection(string strCon); IDbDataAdapter CreateDataAdapter(); } ////// DBFactoryManager 的摘要说明。 /// public sealed class DBFactoryManager { public DBFactoryManager() { } public static IDbConnection CreateConnection(ConnectionConfiguration config) { return GetFactory(config).CreateDbConnection(config.ConnString); } public static IDbConnection CreateConnection() { return Factory.CreateDbConnection(ConnectionConfiguration.ConnectionString); } public static IDbDataAdapter CreateDataAdapter() { return Factory.CreateDataAdapter(); } private static IDBFactory Factory { get { if (_Factory == null) { switch (ConnectionConfiguration.DbType.ToUpper()) { case SqlType: _Factory = new SqlDBFactory(); break; case OracleType: // _Factory = new OracleDBFactory(); break; case AccessType: _Factory = new OleDBFactory(); break; default: _Factory = new OleDBFactory(); break; } } return _Factory; } } private static IDBFactory GetFactory(ConnectionConfiguration pConfig) { switch (pConfig.DatabaseType.ToUpper()) { case SqlType: _Factory = new SqlDBFactory(); break; case OracleType: //_Factory = new OracleDBFactory(); break; case AccessType: _Factory = new OleDBFactory(); break; default: _Factory = new OleDBFactory(); break; } return _Factory; } private static IDBFactory _Factory = null; public const string SqlType = "SQLSERVER"; public const string OracleType = "ORACLE"; public const string AccessType = "ACCESS"; } public class OleDBFactory : IDBFactory { public OleDBFactory() { } public IDbConnection CreateDbConnection(string strOleCon) { return new OleDbConnection(strOleCon); } public IDbDataAdapter CreateDataAdapter() { return new OleDbDataAdapter(); } } public class SqlDBFactory : IDBFactory { public SqlDBFactory() { } public IDbConnection CreateDbConnection(string strSqlCon) { return new SqlConnection(strSqlCon); } public IDbDataAdapter CreateDataAdapter() { return new SqlDataAdapter(); } } //public class OracleDBFactory : IDBFactory //{ // public OracleDBFactory() // { // } // public IDbConnection CreateDbConnection(string strOracleCon) // { // return new OracleConnection(strOracleCon); // } // public IDbDataAdapter CreateDataAdapter() // { // return new OracleDataAdapter(); // } //}
工厂模式
最新推荐文章于 2024-08-28 11:33:13 发布