Композиция и коллекция классов

Понятие композиции и коллекции класса

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

Композиция классов это один из способов повторного использования ранее написанных фрагментов программ. Например, класс «аптека» можно рассматривать как композицию класса «лекарство» – массив различных объектов одного класса «лекарство». Примером композиции является объединение объектов «автомобиль» в классе «гараж» и т.д.

Эти примеры показывают, что композиции классов соответствует множество отношений из реальной жизни.

Объединение однотипных объектов в одной структуре данных называется коллекцией.

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

Обычно коллекция представлена отдельным классом.

Класс, описывающий всю коллекцию, называется классом коллекции.

В приведенных примерах композиции классов второй класс часто выступает в роли коллекции объектов первого класса. Например, класс «гараж» представляет собой коллекцию объектов класса «автомобиль». Класс «аптека» – коллекцию объектов класса «лекарство».

Все классы коллекций условно можно разделить на линейные и нелинейные коллекции.

Линейные коллекции образуют следующие классы коллекций:

– с индексированным доступом, например, различные словари и справочники (телефонный справочник, в котором поиск выполняется по буквам фамилии абонента);

– с прямым доступом, например, массивы. Многие «списки» представлены динамическими массивами;

– с последовательным доступом, например, стеки, очереди, списки.

Нелинейные коллекции включают следующие классы коллекций:

– иерархические, например, различные древовидные структуры. Иерархические системы классификации - УДК или организация поисковых массивов документов в некоторых поисковых системах;

– групповые, например, различные наборы, сетевые структуры, графы.

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

В среде программирования C# существует множество различных классов, предназначенных для коллекционирования однотипных объектов других классов, например, различные списки, стеки, очереди, словари, деревья и многие другие коллекции.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: