Общие сведения о модели фабрики
В ADO.NET 2.0 в пространстве имен System.Data.Common появились новые базовые классы. Эти базовые классы являются абстрактными, что означает, что для них нельзя создавать экземпляры напрямую. К ним относятся классы DbConnection, DbCommand и DbDataAdapter; они совместно используются такими поставщиками данных платформы .NET Framework, как System.Data.SqlClient и System.Data.OleDb. Добавление базовых классов упрощает создание новых функций для поставщиков данных .NET Framework без необходимости в создании новых интерфейсов.
В ADO.NET 2.0 также появились абстрактные базовые классы, с помощью которых разработчик может создавать обобщенный код доступа к данным, не зависящий от конкретного поставщика данных.
Фабричный конструктивный шаблон
В основе модели программирования для написания не зависящего от поставщиков кода лежит использование «фабричного» конструктивного шаблона, в котором используется один API-интерфейс для доступа к базам данных нескольких поставщиков. Этому шаблону присваивается соответствующее имя, поскольку он задает использование специализированного объекта, только чтобы создавать другие объекты, что очень напоминает настоящую фабрику. Более подробное описание шаблона конструктора фабрики см. в статье "Написание универсального кода доступа к данным" в ASP.NET 2.0 и ADO.NET 2.0.
Начиная с ADO.NET 2.0, для создания экземпляра DbProviderFactories класс static
предоставляет методы Shared
(DbProviderFactory в Visual Basic). После этого экземпляр возвращает правильный строго типизированный объект, основанный на данных поставщика и строке соединения, предоставленной во время выполнения.