Главная · Карта сайта · Поиск · Статьи · Компьютерные курсы · Обучающие программы · Открытые проекты · Веб-программирование · Создание интернет-сайта · Полезные ссылки · Глоссарий · Контакты · Декабрь 06 2016 22:52:16
Последнее опубликованное

Что такое Model-View-Controller
Pattern Model-View-Controller

Как создать свой веб-сайт
Как создать свой сайт в интернете

Разное
Статистика

Программирование на C#. Интерфейсы (продолжение)


[Назад] [Универсальные типы]

2.2. Роль интерфейсов в языке C#

В следующих главах я буду постоянно возвращаться к теме интерфейсов, поскольку это краеугольный камень CRL исполняемых языков. Интерфейсы вросли и продолжают врастать в синтаксис C#. Например, следующая конструкция

foreach (T item in colection) {}

позволяет осуществлять перебор элементов в объектах-коллекциях, реализующих интерфейсы System.Collections.IEnumerable или System.Collections.Generic.IEnumerable<T>. А конструкция

using (T obj = new T()) {}

создана специально для упрощения синтаксиса при работе с объектами классов, поддерживающих интерфейс IDisposable. Интерфейс IDisposable реализуют те классы, экземпляры которых используют в своей работе ресурсы, требующие своевременного освобождения, такие как файлы, соединения с базами данных или неуправляемые (unmanaged) ресурсы. До появления этой конструкции приходилось писать что-то типа этого:
Интерфейс IDisposable

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

Стоит обратить внимание еще на одно применение интерфейсов при работе с базой данных. Пространство имен BCL System.Data.Common содержит набор интерфейсов и абстрактных классов. Эти абстрактные классы и интерфейсы реализуются компонентами, работающими с различными базами данных по различным протоколам. Например, есть наборы классов для работы с любой базой, поддерживающей протоколы ODBC или OleDB. Также, есть наборы классов для работы с некоторыми конкретными СУБД посредством их родных протоколов (Oracle и Microsoft SQL Server). Производители других баз данных могут независимо разработать свой набор компонентов на основе спецификаций System.Data.Common, как это, например, случилось с Oracle: в настоящий момент есть набор компонентов для работы с СУБД Oracle от Microsoft и от самого Oracle. Последние, по понятным причинам, работают лучше и предоставляют больше возможностей.

В итоге, такое положение дел можно успешно использовать при проектировании приложений, работа которых не должна зависеть от природы базы данных. Такого эффекта можно достичь за счет работы только с интерфейсами из пространства имен System.Data.Common, а экземпляры соединений создавать специализированными фабриками соединений. Пример приложения, чья работа не зависит от природы реляционной базы данных, с которой оно взаимодействует, можно посмотреть здесь.

На данном этапе, как мне кажется, хватит пока про интерфейсы.



[Назад]

Компьютерные курсы и курсы программирования
Основы программирования

Курс для начинающих программистов на C# и VB.NET.

SQL 25™

Построение SQL запросов и работа с базой данных.

C# Quick Guide™

Программирование на C#. Краткое руководство.

RegEx

Применение регулярных выражений.

Plug-in архитектура

Примеры программной Plug-in архитектуры.

XML и его расширения

Язык разметки XML и его расширения с примерами.

HTML и разметка гипертекста

Языки HTML, XHTML и CSS с примерами разметки.

Основы веб-дизайна

Основы веб-дизайна: решения типовых задач верстки.

Программирование на PHP

Руководство по программированию на PHP для начинающих.

Справочные материалы

Шаблоны проектирования
Каталог шаблонов проектирования программных компонентов.

Рефакторинг кода
Каталог приемов рефакторинга программного кода.

Гость
Имя

Пароль



Забыли пароль?
Запросите новый здесь
.
Coding Craft. Все права защищены © 2011. Проект Инициативного Народного Фронта Образования - ИНФО-проект.