Об этих принципах объектного подхода мы уже упоминали. На самом деле это принципы программирования, присущие не только объектно-ориентированной модели. Но хотелось бы несколько уточнить их в отношении к организации классов.
Чтобы абстрагировать объект, он должен быть сравнительно "слабо связан” с окружающим миром. Он должен обладать сравнительно небольшим набором (существенных) свойств, характеризующих его отношения с другими объектами. С другой стороны, выделение класса как некоторого понятия, охватывающего целый ряд различных объектов, также является моментом абстракции.
Поэтому абстрагирование, как таковое, имеет два аспекта: выделение общих и в тоже время существенных свойств, описывающих поведение ряда схожих предметов.
С абстракцией неразрывно связан принцип инкапсуляции. Инкапсуляция – это сокрытие второстепенных деталей объекта. Для этого нужно выделить сначала существенные его свойства. Но чтобы выделить существенные свойства, нужно сначала отвлечься от второстепенных. Так что в действительности речь может идти только о едином акте, в котором можно лишь отвлеченно выделить два отдельных момента.
С технической точки зрения абстракция и инкапсуляция выражаются в том, что классы состоят из интерфейса и реализации. Интерфейс представляет абстрагированную сущность объектов. Реализация скрыта в своих деталях от пользователя класса.
2.2 Язык UML: структурные диаграммы, диаграммы поведения,
диаграммы взаимодействия
http://ru.wikipedia.org/wiki/UML
Иформационные структуры
Линейный список
Линейный список - это множество, состоящее из переменного числа узлов X[1], X[2],..., X[n].
Структурные свойства такого списка:
- Если n>0, то Х[1] является первым узлом;
- Если 1<k<n, то k-му узлу Х[k] предшествует Х[k-1] и за ним следует Х[k+1];
- Х[n] является последним узлом.
Среди возможных списковых структур выделяют некоторые специальные списки.
Стек - это линейный список, в котором все включения и исключения (и обычно всякий доступ) делаются в одном конце списка
Наглядный пример стеков: стопка подносов в столовой, железнодорожный тупик. Стеки используются в работе алгоритмов, имеющих рекурсивный характер. Конец стека называется вершиной стека. Принцип работы стека - “последний пришел - первый вышел”. Внизу находится наименее доступный элемент. Часто говорят, что элемент опускается в стек.
Очередь - это линейный список, в один конец которого добавляются элементы, а с другого конца исключаются. Принцип работы очереди: ”первый пришел - первый вышел”.