Код IT
← Каталог

Паттерн "Фабрика" в C# — когда хватает DI-контейнера — Что делает Abstract Factory

Фрагмент из «Паттерн "Фабрика" в C# — когда хватает DI-контейнера»: Что делает Abstract Factory.

csharp projectencyclopedia7-06-proektirovanie-i-arhitektura-design-patterns-119 embed URL статья в энциклопедии
C# main.cs
public interface IDbFactory
{
    IDbConnection CreateConnection();
    IDbCommand CreateCommand();
}

public class PostgresFactory : IDbFactory
{
    public IDbConnection CreateConnection() => new NpgsqlConnection();
    public IDbCommand CreateCommand() => new NpgsqlCommand();
}

public class SqlServerFactory : IDbFactory
{
    public IDbConnection CreateConnection() => new SqlConnection();
    public IDbCommand CreateCommand() => new SqlCommand();
}
public interface IDbFactory
{
    IDbConnection CreateConnection();
    IDbCommand CreateCommand();
}

public class PostgresFactory : IDbFactory
{
    public IDbConnection CreateConnection() => new NpgsqlConnection();
    public IDbCommand CreateCommand() => new NpgsqlCommand();
}

public class SqlServerFactory : IDbFactory
{
    public IDbConnection CreateConnection() => new SqlConnection();
    public IDbCommand CreateCommand() => new SqlCommand();
}