标准结构

.Net Framework中使用的模式-Abstract Factory模式

Ado.NET的抽象工厂结构

.Net Framework中使用的模式-Abstract Factory模式

抽象工厂基类DbProviderFactory,实现类SqlClientFactory、OracleClientFactory等。产品基类DbConnection、DbCommand、DbParameter等,实现类SqlConnection、OracleConnection等。伪码:

public abstract class DbProviderFactory
{
    public virtual DbConnection CreateConnection()
    {
        return null;
    }

    public virtual DbCommand CreateDbCommand()
    {
        return null;
    }
}

public abstract class DbConnection()
{
}

public abstract class DbCommand()
{
}

public class SqlConnection : DbConnection
{
}

public class OracleConnection : DbConnection
{
}

public class SqlCommand : DbCommand
{
}

public class OracleCommand : DbCommand
{
}

public class SqlClientFactory : DbProviderFactory
{
    public override DbConnection CreateConnection()
    {
        return new SqlConnection();
    }

    public virtual DbConnection CreateDbCommand()
    {
        return new SqlCommand ();
    }
}

public class OracleClientFactory : DbProviderFactory
{
    public override SqlConnection CreateConnection()
    {
        return new SqlConnection();
    }

    public virtual DbCommand CreateDbCommand()
    {
        return new SqlCommand();
    }
}

 

public class Client
{
    DbProviderFactory factory = DbProviderFactories.GetFactory(providerName);
    DbConnection = factory.CreateDbConnection();
    DbCommand = factory.CreateDbCommand();
}

相关文章:

  • 2021-07-27
  • 2022-01-19
  • 2021-05-19
  • 2021-12-05
  • 2021-06-22
猜你喜欢
  • 2022-02-04
  • 2022-12-23
  • 2021-11-12
  • 2021-07-21
  • 2022-01-20
  • 2021-07-11
  • 2021-12-01
相关资源
相似解决方案