Основы объектно-ориентированного проектирования

         

Извлечения из библиотек Base


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

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

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

Детальное представление библиотек дано в [M 1994a], где также описаны теоретические предпосылки - принципы общей таксономии, используемые для классификации основных структур данных в информатике. Некоторые из основных идей обсуждались при расмотрении наследования.

К наиболее важным классам, чьи концепции обсуждались в предыдущих лекциях и чьи тексты находятся на CD-ROM, относятся:

  • ARRAY, описывающий одномерные массивы, основанный на гибком и общем виде этого понятия (в частности, массивы могут динамически изменять размер во время выполнения системы).
  • LINKABLE, описывающий элементы списковых структур с одной связью.
  • BI_LINKABLE, эквивалент элементов с двумя связями.
  • LIST, отложенный класс, представляющий общее понятие списка как "активной структуры данных" с курсором без обязательств конкретного представления. Следующие три классса обеспечивают специальные реализации списка, используя множественное наследование и технику "брака по расчету".
  • ARRAYED_LIST, представляющий реализацию списка массивом, чья возможность динамического изменения размера здесь существенно используется.
  • LINKED_LIST, представляющий реализацию односвязным списком и внутренне использующий для элементов класс LINKABLE.
  • TWO_WAY_LIST, двусвязный список, использующий класс BI_LINKABLE.
  • TWO_WAY_TREE, широко использующий реализацию деревьев, основанную на классе TWO_WAY_LIST для представления деревьев, учитывающую сделанное ранее наблюдение в лекции о множественном наследовании. Его суть в том, что при слиянии общих понятий дерева и узла дерева можно полагать, что дерево одновременно является списком и элементом списка.

Все эти классы, представляющие контейнеры, явялются универсальными с единственным родовым параметром, задающим тип элементов.



Содержание раздела