Понятие обобщенного программирования. Принципы обобщенного программирования (абстрагирование, иерархия, типизация) — КиберПедия 

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

Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...

Понятие обобщенного программирования. Принципы обобщенного программирования (абстрагирование, иерархия, типизация)

2018-01-29 282
Понятие обобщенного программирования. Принципы обобщенного программирования (абстрагирование, иерархия, типизация) 0.00 из 5.00 0 оценок
Заказать работу

Итак, мы изучили такие технологии программирования, как структурное программирование (языки С++, Pascal), объектно-ориентированное (языки С++, C#). В ООП внимание уделяется данным об объекте и действиям над объектом. Это значит, что классы содержат: поля, конструкторы, методы, свойства, индексаторы, события.

Обобщённое программирование – новая технология программирования, которая была реализованная ещё в языке C++. В обобщённом программировании внимание уделяется алгоритмам, которые не зависят от типов данных, т.е. происходит абстрагирование от конкретных задач предметной области.

Это значит, что появились так называемые типизированные данные, т.е. тип переменной для них задан как параметр в виде <Тип>, а затем, во время работы программы, этот тип конкретизируется. В языке C++ были разработанны шаблоны функций, работающие с такими обобщёнными типами.

В структурном программировании наиболее универсальные алгоритмы оформлялись в виде процедур и функций пользователя, которые затем были собраны в модули, библиотеки модулей.

В 90-х годах 20 века американский программист Алекс Степанов создал библиотеку стандартных шаблонов, которая называлась STL (Standard Templates Library). В ней были собраны функции, которые реализуют самые распространённые алгоритмы (сортировка массивов, поиск в массиве и т.д.). В своих приложениях программисты получили возможность пользоваться этими шаблонами функций, посылая в них конкретные типы данных.

Наибольшую ценность библиотека STL приобрела с появлением в ней реализации работы со структурами данных, таких как стек, очередь, списки (однонаправленные и двунаправленные (кольцевые)). Эти новые структуры данных позволили более эффективно, чем стандартные массивы, хранить информацию во время работы программы. При разработке таких структур данных в языке C++ использовано иерархическое наследование классов, а в C# – интерфейсы.

В настоящее время библиотека STL переименована в библиотеку ATL (Active Templates Library). Словом Active называют новые технологии, позволяющие динамически, во время работы программы, использовать библиотеки классов.

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

Можно создавать такие коллекции, методы и классы, которые принимают любой тип данных. Для этого служат обобщения. Обобщения – это типы, которые принимают имена других типов в качестве параметров. В среде.NET имеются обобщения для большинства классов, коллекций. Распознать тип данных во время работы программы позволяет динамическая идентификация типов. В этом и состоит сущность принципа обобщенного программирования «типизация данных».

 

Обзор коллекций. Интерфейсы коллекций. Классы коллекций общего назначения.

Обзор коллекций

Интерфейсы и классы, которые позволяют создавать различные коллекции, находятся в пространстве имён System.Collections. Для работы с коллекциями следует подключить директиву использования using System.Collections.

Под коллекцией понимается группа (набор) разнотипных объектов. В языке С++ коллекции называются контейнерами, в VB или VBA их называют семействами.

Коллекции разработаны для хранения объектов путём добавления их с помощью определённых методов. Обход (просмотр) содержимого коллекции позволяет выполнить цикл

foreach (Тип_объекта Имя_элемента in Коллекция).

Коллекции упрощают программирование, предлагая уже готовые решения для построения структур данных, разработка которых с нуля отличается большой трудоёмкостью. Основное достоинство коллекций состоит в том, что они стандартизируют способ обработки групп объектов в приложениях. Ведь все коллекции разработаны на основе набора заранее определённых интерфейсов.

Среда. NET Framework поддерживает три основных типа коллекций: общего назначения, специализированные и ориентированные на побитовую организацию данных.

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

Коллекции специального назначения ориентированы на обработку данных конкретного типа (строк) или на обработку уникальным способом (однонаправленный список). Однонаправленный список – это последовательность (цепочка) узлов, последний из которых содержит пустой указатель (null):

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

Интерфейсы коллекций

Основополагающими для всех коллекций являются интерфейсы IEnumerable, IEnumerator, которые указывают, как реализовать перечисление. Базовым интерфейсом является интерфейс ICollection, то есть на нём построены все коллекции. В этом интерфейсе имеется самое востребованное свойство int Count {get;} – количество элементов коллекции в текущий момент времени.

Интерфейс IList определяет коллекцию-список. В нем имеется индексатор (отсчёт от 0), а так же много методов, которые позволяют добавлять, удалять элементы, очищать коллекцию.

Интерфейс IDictionary поддерживает словари. В нем имеются свойства Keys и Values.

 


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

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.008 с.