Интерфейсы и абстрактные поставщики данных

Интерфейсы и абстрактные поставщики данных

К этому моменту вы должны иметь более конкретное представление об общих функциональных возможностях, присущих всем поставщикам данных .NET. Напомним, что, хотя имена реализующих типов у разных поставщиков данных оказываются разными, у вас все равно есть возможность программировать эти типы в аналогичной манере – в этом и заключается преимущество полиморфизма, основанного на использовании интерфейсов. Так, если определить метод, имеющий параметр IDbConnection, вы сможете передать ему любой объект соединения ADO.NET.

public static void OpenConnection(IDbConnection cn) {

 // Открытие входного соединения для вызывающей стороны.

 cn.Open();

}

То же можно сказать и о возвращаемых значениях. Рассмотрите, например, следующую простую программу на C#, которая позволяет вызывающей стороне получить конкретный объект соединения, используя значение пользовательского перечня (здесь предполагается, что вы указали оператор using для System.Data).

namespace ConnectionApp {

 enum DataProvider { SqlServer, OleDb, Odbc, Oracle }

 class Program {

  static void Main(string[] args) {

   // Получение соединения.

   IDbConnection myCn = GetConnection(DataProvider.SqlServer);

   // Требуется соединение с базой данных SQL Server Pubs.

   myCn.ConnectionString = "Data Source=localhost;uid=sa;pwd=;Initial Catalog=Pubs";

   // Открытие соединения с помощью вспомогательной функции.

   OpenConnection(myCn);

   // Использование соединения и его последующее закрытие.

   …

   myCn.Close();

  }

  static IDbConnection GetConnection(DataProvider dp) {

   IDbConnection conn = null;

   switch (dp) {

   case DataProvider.SqlServer:

    conn = new SqlConnection();

    break;

   case DataProvider.OleDb:

    conn = new OleDbConnection();

    break;

   case DataProvider.Odbc:

    conn = new OdbcConnection();

    break;

   case DataProvider.Oracle:

    conn = new OracleConnection();

    break;

   }

   return conn;

  }

 }

}

Преимущество использования общих интерфейсов System.Data заключается в том, что в этом случае у вас больше шансов создать более гибкий программный код, который дольше сможет оставаться актуальным. Например, если сегодня вы построите приложение, использующее Microsoft SQL Server, то что вы сможете сделать, если через год-другой руководство вашей компании примет решение перейти на использование Oracle? Если в приложении "жестко" запрограммированы имена типов System.Data.SqlClient, то вам, очевидно, придется сначала их отредактировать, а затем перекомпилировать и повторно инсталлировать компоновочный блок.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Абстрактные базы как двоичные интерфейсы

Из книги Сущность технологии СОМ. Библиотека программиста автора Бокс Дональд

Абстрактные базы как двоичные интерфейсы Оказывается, применение техники разделения интерфейса и реализации может решить и проблемы совместимости транслятора/компоновщика C++. При этом, однако, определение класса интерфейса должно принять несколько иную форму. Как


B.4. Поставщики услуг Internet, использующие зарезервированные IP-адреса

Из книги Iptables Tutorial 1.1.19 автора Andreasson Oskar

B.4. Поставщики услуг Internet, использующие зарезервированные IP-адреса Я добавил этот раздел чтобы предупредить вас о туповатых провайдерах (Internet Service Providers), которые назначают IP адреса, отведенные IANA для локальных сетей. Например, Swedish Internet Service Provider и телефонная монополия Telia


ЛЕКЦИЯ № 8. Абстрактные структуры данных

Из книги Информатика и информационные технологии: конспект лекций автора Цветкова А В

ЛЕКЦИЯ № 8. Абстрактные структуры данных 1. Абстрактные структуры данных Структурированные типы данных, такие как массивы, множества, записи, представляют собой статические структуры, так как их размеры неизменны в течение всего времени выполнения программы.Часто


1. Абстрактные структуры данных

Из книги Информатика и информационные технологии автора Цветкова А В

1. Абстрактные структуры данных Структурированные типы данных, такие как массивы, множества, записи, представляют собой статические структуры, так как их размеры неизменны в течение всего времени выполнения программы.Часто требуется, чтобы структуры данных меняли свои


17. Абстрактные структуры данных

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

17. Абстрактные структуры данных Структурированные типы данных, такие как массивы, множества, записи, представляют собой статические структуры, так как их размеры неизменны в течение всего времени выполнения программы.Часто требуется, чтобы структуры данных меняли свои


Поставщики данных ADO.NET

Из книги Основы объектно-ориентированного программирования автора Мейер Бертран

Поставщики данных ADO.NET ADO.NET не предлагает единого набора типов для связи со всели системами управления базами данных (СУБД). Вместо этого ADO.NET поддерживает множество поставщиков данных, каждый из которых оптимизирован для взаимодействия с СУБД конкретного вида. Одним из


Поставщики данных других производителей

Из книги Видео на вашем компьютере: ТВ тюнеры, захват кадра, видеомонтаж, DVD автора Буковецкая Оксана Александровна

Поставщики данных других производителей Вдобавок к поставщикам данных, предлагаемым компанией Microsoft, существуют поставщики данных других производителей, предназначенные для самых разных, как свободно доступных, так и коммерческих баз данных. В табл. 22.3 указано, где


Лекция 6. Абстрактные типы данных (АТД)

Из книги IT-безопасность: стоит ли рисковать корпорацией? автора Маккарти Линда

Лекция 6. Абстрактные типы данных (АТД) Чтобы объекты играли лидирующую роль в архитектуре ПО, нужно их адекватно описывать. В этой лекции показывается, как это делать. Если вам не терпится окунуться в глубины объектной технологии и подробно изучить множественное


Абстрактные типы данных и скрытие информации

Из книги автора

Абстрактные типы данных и скрытие информации Особенно интересным следствием ОО-политики, в которой модули основаны на реализациях АТД (классах), является то, что она дает ясный ответ на вопрос, который остался нерешенным при обсуждении скрытия информации: как нам следует


Клиенты и поставщики

Из книги автора

Клиенты и поставщики Игнорируя ряд моментов, связанных с загадкой идентификации Current, можно считать выясненным, как определять простые классы. Теперь необходимо обсудить применение этих определений, - как они используются в других классах. При последовательном


Абстрактные предусловия

Из книги автора

Абстрактные предусловия Правило ослабления предусловий может оказаться чересчур жестким в случае, когда наследник понижает уровень абстракции, характерный для его предка. К счастью, есть легкий обходной путь, полностью согласующийся с теорией.Типичным примером этого


Интерфейсы и передача пакетов данных

Из книги автора

Интерфейсы и передача пакетов данных Перед запуском системы в нее необходимо загрузить огромные объемы данных. В системе R/3 4.0 для этого предусмотрена утилита, которая называется «Инструментальные средства для миграции прежней системы» (Legacy System Migration Workbench, LSMW). Принцип


Глава VII Фирмы-поставщики и производители оборудования для компьютерного видео и систем безопасности

Из книги автора

Глава VII Фирмы-поставщики и производители оборудования для компьютерного видео и систем безопасности • Фирмы-производители и разработчики • Фирмы-поставщики • Фирмы, специализирующиеся в области компьютерных видеосистем безопасности • Информационные Internet-сайты В


Фирмы-поставщики

Из книги автора

Фирмы-поставщики В этом разделе представлены наиболее известные московские компании, занимающиеся продажей компьютерных видеосистем. Разумеется, на самом деле распространителей этого оборудования гораздо больше, однако в наш обзор вошли фирмы, имеющие наибольший


Поставщики продуктов

Из книги автора

Поставщики продуктов Ниже перечисленные поставщики являются надежными компаниями, у которых вам следует приобретать продукты, обеспечивающие безопасность. Некоторые из этих компаний предлагают свои услуги по проведению консультаций и обучения:Absolute Software