Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Некоторые станд.интерфейсы среды .NET Framework




В С# пр-мах можно исп-ть станд.интерфейсы среды.

#1. IEnumerable и IEnumerator служат для работы с перечислимыми типами. Используются в коллекциях. Опрос содержимого коллекций производится с помощью цикла

foreach elem In Коллекция

{

}

#2. Интерфейс и Cloneable. Служит для создания клонированных объектов. В нем имеется только один метод object Clone();.

#3. ICompareable – создание сравнимых объектов. С помощью этого интерфейса можно определить поведение, позволяющее сортировать объекты по заданному ключу. Например, в классе System.Array имеется метод Sort(Имя_массива), но этот метод сортирует лишь числовые массивы. Если ему передать массив точек, то возникнет ошибка. Нужно для класса Point реализовать интерфейс ICompareable, в котором имеется метод: int CompareTo(object Ob);

Этот метод возвращает –1, если текущий объект размещается ДО текущего объекта; 0 – если текущий объект РАВЕН указанному объекту; 1 – если текущий объект размещается ПОСЛЕ указанного объекта.

Итак, какова же причина появления в ООП (объектно-ориентированном программировании) интерфейсов? Казалось бы, достаточно абстрактных методов и классов. Но абстрактные методы и классы используются лишь при наследовании, где четко нужно знать иерархию базовых классов. Интерфейсы же – это чистый протокол, стандарт, так как в них нет членов-переменных и нет реализации методов, свойств индексаторов. Такой протокол позволяет поддерживать множество вариантов поведения, избегая при этом проблем, возникающих при наследовании. В С# нет множественного наследования, но интерфейсы имитируют множественное наследование.

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


 

35. Механизмы реализации полиморфизма в C#.

Полиморфизм (от греческого слова polymorphism, означающего "много форм") — это качество, которое позволяет одному интерфейсу получать доступ к целому классу действий. Простым примером полиморфизма может послужить руль автомобиля. Руль(интерфейс) остается рулем независимо от того, какой тип рулевого механизма используется в автомобиле. Другими словами, руль работает одинаково в любом случае: оснащен ли ваш автомобиль рулевым управлением прямого действия, рулевым управлением с усилителем или реечным управлением. Таким образом, поворот руля влево заставит автомобиль поехать влево независимо от типа используемого в нем рулевого управления. Достоинство такого единообразного интерфейса состоит, безусловно, в том, что, если вы знаете, как обращаться с рулем, вы сможете водить автомобиль любого типа. Тот же принцип можно применить и к программированию. Рассмотрим, например, стек (stack), т.е. область памяти, функционирующую по принципу "последним пришел — первым обслужен". Предположим, вы пишете программу, для которой нужно организовать три различных типа стека. Один стек предназначен для целочисленных значений, второй — для значений с плавающей точкой, а третий — для символов. В этом случае для реализации каждого стека используется один и тот же алгоритм, несмотря на различие в типах сохраняемых данных. В случае не объектно-ориентированного языка вам пришлось бы создать три набора "стековых" подпрограмм, имеющих различные имена. Но благодаря полиморфизму в среде С# можно создать один общий набор "стековых" подпрограмм, который обрабатывает все три типа стека. Иными словами, зная, как использовать один стек, можно использовать все остальные. Концепцию полиморфизма часто выражают такой фразой: "один интерфейс — много методов". Это означает, что для выполнения группы подобных действий можно разработать общий интерфейс. Полиморфизм позволяет понизить степень сложности программы, предоставляя программисту возможность использовать один и тот же интерфейс для задания общего класса действий. Конкретное (нужное в том или ином случае) действие (метод) выбирается компилятором. Программисту нет необходимости делать это вручную. Его задача — правильно использовать общий интерфейс.


 





Поделиться с друзьями:


Дата добавления: 2016-10-06; Мы поможем в написании ваших работ!; просмотров: 374 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Вы никогда не пересечете океан, если не наберетесь мужества потерять берег из виду. © Христофор Колумб
==> читать все изречения...

3491 - | 3280 -


© 2015-2026 lektsii.org - Контакты - Последнее добавление

Ген: 0.009 с.