Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
технология разработки ПО.doc
Скачиваний:
40
Добавлен:
31.03.2015
Размер:
193.54 Кб
Скачать

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

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

Имя объекта

Свойства

Перечень операций

Индивидуальность объекта – характеристика объекта, которая отличает его от всех других объектов.

Состояние объекта характеризуется перечнем свойств объекта (из второй зоны)и текущими значениями каждого из этих свойств.

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

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

- модификатор - изменяет состояние объекта

- селектор – дат доступ к состоянию, но не изменят его

- итератор – осуществляет доступ к содержимому объекта по частям в строго определенном порядке

- конструктор – создает объект и инициализирует его

- деструктор – разрушает объект и освобождает занимаемую им память

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

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

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

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

Классы

Понятия объекта и класса тесно связаны, тем не менее, существуют важные различия между ними в том, что класс – это абстракция существующих характеристик объекта. Класс – это описание множества объектов, которые разделяют одинаковые свойства, операции, отношения и семантику. Любой объект – экземпляр класса. Различают внутренние представления класса (реализацию) и внешние представления класса (интерфейс).

Интерфейс объявляет возможности, т.е. услуги класса, но скрывает его структуру и поведение. Иными словами интерфейс демонстрирует внешнему миру абстракцию классов, его внешний облик. Интерфейс, в основном, состоит из объявлений всех операций, применяемых к экземпляру классов, он может также включать объявление типов, переменных, констант и исключений, необходимых для полноты данной абстракции. Интерфейс может быть разделен на три части: публичную (public), объявление которой доступны всем клиентам; защищенную (protected), объявление которой доступны только самому классу и его друзьям, его подклассам; приватную (private), объявление которой доступны самому классу и его друзьям.

Другом класса называется класс, который имеет доступы ко всем частям этого класса (публичный, защищенный и приватный).

Реализация класса описывает секреты поведения класса, включает реализации всех операций, определенных в интерфейсе. Классы, подобно объектам, не существуют в изоляции, напротив, с отдельной проблемной областью связывают ключевые абстракции, отношения между которыми формируют структуру из класса. Между классами существуют четыре основных вида отношений:

- ассоциация

- обобщение-специализация

- целая часть

- зависимость, отражающая влияние одного класса на другой