Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТАРАСОВА МАТЕРИАЛЫ.docx
Скачиваний:
3
Добавлен:
29.07.2019
Размер:
240.39 Кб
Скачать
  1. Составляющие объектного подхода (основные)

При объектном подходе можно выделить четыре главных составляющих:

- абстрагирование,

- ограничение доступа,

- модульность,

- иерархия,

без которых подход не может считаться объектно-ориентированным.

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

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

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

Абстракция должна охватывать только самую суть объекта. Это называется принципом наименьшей выразительности.

Существует множество абстракций рассмотрим некоторые из них:

1) абстракция сущности объекта – объект представляет собой модель существенных сторон предметной области,

2) абстракция поведения – объект состоит из множества операций, каждая из которых выполняет определенную функцию,

3) абстракция в виде виртуальной машины – объект включает группу операций виртуальной машины, которые используются либо для управления объектом, либо соответствует функциям нижнего уровня (т.е. либо управляют прерываниями, либо сами являются прерываниями),

4) произвольная абстракция – объект включает в себя набор независимых по отношению друг к другу операций и т. д.

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

Описание поведения объекта заключается в описании операций, которые объект выполняет над другими объектами и операций, которые выполняются над данным объектом. Это называется протоколом

Все абстракции обладают, как статическими, так и динамическими свойствами.

НАПРИМЕР. Рассмотрим объект - файл. Он требует определенного объема памяти, имеет имя и содержание. Эти атрибуты являются статическими, а их конкретные значения, которые изменяются в процессе использования объекта, являются динамическими.

Протокол полностью определяет поведение объекта, как со статической, так и с динамической точки зрения.

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

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

Рассмотрим ограничение доступа НА ПРИМЕРЕ стека. Пусть у нас объявлен массив, организованный, как стек. Мы можем пользоваться им как стеком, но можем так же, при необходимости, обратиться непосредственно к каждому элементу, т.к. объявлен он как массив. А если мы объявим его, как стек, то доступ будет ограничен, и мы сможем им пользоваться как стеком и только.

Модульность. В таких ЯП, как С++ модульность является элементом конструкции, а классы и объекты составляют логическую структуру системы. Эти абстракции организуются в модули, формируя физическую структуру системы.

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

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

При объектном подходе выделяются две иерархические структуры: структура классов или иерархия по типу и структура объектов или иерархия по составу.

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