Abstract Factory(抽象工厂模式)
2014-05-26 22:06
162 查看
System.Data.Common.DbProviderFactory
public abstract class DbProviderFactory
{
public virtual DbConnection CreateConnection()
{
return null;
}
public virtual DbCommand CreateCommand()
{
return null;
}
}
System.Data.SqlClient.SqlClientFactory
public sealed class SqlClientFactory : DbProviderFactory, IServiceProvider
{
public override DbConnection CreateConnection()
{
return new SqlConnection();
}
public override DbCommand CreateCommand()
{
return new SqlCommand();
}
}
System.Data.Odbc.OdbcFactory
public sealed class OdbcFactory : DbProviderFactory
{
public override DbConnection CreateConnection()
{
return new OdbcConnection();
}
public override DbCommand CreateCommand()
{
return new OdbcCommand();
}
}
System.Data.Common.DbConnection
public abstract class DbConnection : Component, IDbConnection
{
}
System.Data.SqlClient.SqlConnection
public sealed partial class SqlConnection : DbConnection, ICloneable
{
}
System.Data.Odbc.OdbcConnection
public sealed partial class OdbcConnection : DbConnection, ICloneable
{
}
System.Data.Common.DbCommand
public abstract class DbCommand : Component, IDbCommand
{
}
System.Data.SqlClient.SqlCommand
public sealed class SqlCommand : DbCommand, ICloneable
{
}
System.Data.Odbc.OdbcCommand
public sealed class OdbcCommand : DbCommand, ICloneable
{
}
public class Client
{
public static void Main()
{
string connectionString =
System.Configuration.ConfigurationManager.AppSettings["DB_CONNECTION_STRING"];
string providerName =
System.Configuration.ConfigurationManager.AppSettings["DB_PROVIDER_NAME"];
DbProviderFactory factory = DbProviderFactories.GetFactory(providerName);
DbConnection connection = factory.CreateConnection();
connection.ConnectionString = connectionString;
using (connection)
{
DbCommand command = factory.CreateCommand();
command.CommandText =
"INSERT INTO t_users(user_username, user_password) VALUES('admin' ,'admin))";
command.Connection = connection;
command.ExecuteNonQuery();
}
}
}
public abstract class DbProviderFactory
{
public virtual DbConnection CreateConnection()
{
return null;
}
public virtual DbCommand CreateCommand()
{
return null;
}
}
System.Data.SqlClient.SqlClientFactory
public sealed class SqlClientFactory : DbProviderFactory, IServiceProvider
{
public override DbConnection CreateConnection()
{
return new SqlConnection();
}
public override DbCommand CreateCommand()
{
return new SqlCommand();
}
}
System.Data.Odbc.OdbcFactory
public sealed class OdbcFactory : DbProviderFactory
{
public override DbConnection CreateConnection()
{
return new OdbcConnection();
}
public override DbCommand CreateCommand()
{
return new OdbcCommand();
}
}
System.Data.Common.DbConnection
public abstract class DbConnection : Component, IDbConnection
{
}
System.Data.SqlClient.SqlConnection
public sealed partial class SqlConnection : DbConnection, ICloneable
{
}
System.Data.Odbc.OdbcConnection
public sealed partial class OdbcConnection : DbConnection, ICloneable
{
}
System.Data.Common.DbCommand
public abstract class DbCommand : Component, IDbCommand
{
}
System.Data.SqlClient.SqlCommand
public sealed class SqlCommand : DbCommand, ICloneable
{
}
System.Data.Odbc.OdbcCommand
public sealed class OdbcCommand : DbCommand, ICloneable
{
}
public class Client
{
public static void Main()
{
string connectionString =
System.Configuration.ConfigurationManager.AppSettings["DB_CONNECTION_STRING"];
string providerName =
System.Configuration.ConfigurationManager.AppSettings["DB_PROVIDER_NAME"];
DbProviderFactory factory = DbProviderFactories.GetFactory(providerName);
DbConnection connection = factory.CreateConnection();
connection.ConnectionString = connectionString;
using (connection)
{
DbCommand command = factory.CreateCommand();
command.CommandText =
"INSERT INTO t_users(user_username, user_password) VALUES('admin' ,'admin))";
command.Connection = connection;
command.ExecuteNonQuery();
}
}
}
相关文章推荐
- 设计模式-抽象工厂模式-abstractfactory-python
- 简单工厂&工厂模式&抽象工厂模式
- 设计模式——抽象工厂模式及在jdk中的应用+几种工厂模式的比较
- Java/Android 设计模式系列(4)--抽象工厂模式
- [设计模式]抽象工厂模式
- 设计模式 3-23 抽象工厂模式
- 工厂模式,抽象工厂模式区别
- Android设计模式之抽象工厂模式(二)
- 抽象工厂模式和工厂模式的区别
- 抽象工厂模式
- 普通工厂模式and抽象工厂模式
- 设计模式——抽象工厂模式
- 抽象工厂模式
- 【设计模式】抽象工厂模式
- 设计模式—抽象工厂模式
- 抽象工厂模式
- 设计模式——抽象工厂模式及与工厂模式的区别
- 抽象工厂模式
- 抽象工厂模式
- 设计模式——抽象工厂模式