double arrow

Дополнительные элементы ООП

Главные элементы объектно-ориентированного подхода

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

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

3. Модульность и декомпозиция.Одним из основных способов анализа сложных систем является декомпозиция. При проектировании сложной программной системы необходимо разделять ее на все меньшие и меньшие подсистемы, каждую из которых можно совершенствовать независимо. Декомпозиция разрабатываемой программной системы на ряд тесно связанных раздельно компилируемых модулей с целью снижения затрат на программирование за счет независимой разработки и тестирования существенно уменьшает затраты. Различают следующие виды декомпозиции: алгоритмическая (разбиение на подпрограммы) и объектно-ориентированная (разбиение на совокупность взаимодействующих объектов). Опыт показывает, что полезней вначале применить объектный подход, а затем после упрощения системы - алгоритмический.

4. Иерархия. Это ранжированная или упорядоченная система абстракций.

Существуют следующие типы иерархий.

- Структура классов.

- Структура объектов.

Наследование - это такое соотношение между классами, когда один класс использует структурную или функциональную часть одного или нескольких других классов (соответственно простое или множественное наследование).

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

6. Параллелизм - свойство объектов находиться в активном, либо пассивном состоянии. ООП удовлетворяет требованиям распределенных систем, поскольку явно определяет блоки распределения и перемещения или взаимодействующие объекты.

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

Различают следующие виды устойчивости:

- Промежуточные результаты вычислений выражений.

- Локальные переменные в вызове процедур.

- Собственные переменные.

- Данные, сохраняющиеся между вызовами основной программы.

- Данные, которые переживают всю программу.

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

Таким образом, объектно-ориентированный подход позволяет:

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

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

Создание объектно-ориентированных приложений включает следующие этапы.

  • определение объектов и классов;
  • подготовка словаря данных;
  • определение зависимостей между объектами;
  • определение атрибутов объектов и связей;
  • организация и упрощение классов при использовании наследования;
  • дальнейшее исследование и усовершенствование модели.

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