
- •Типы отношений между объектами. Интерфейс и реализация класса. Наследование. Простой полиморфизм. Сложный полиморфизм. Композиция. Наполнение.
- •2. Если объект является результатом декомпозиции более сложного объекта, то говорят, что между этими объектами существует отношение включения - первый объект включает второй (иерархия целое/часть).
- •Простой полиморфизм.
- •2) При работе с указателями, когда указателю на объект класса-родителя присваивается адрес объекта класса-потомка.
- •Композиция.
- •Пример Композиции (класс Сообщение )
- •Конец описания.
- •Наполнение
- •Делегирование методов.
Типы отношений между объектами. Интерфейс и реализация класса. Наследование. Простой полиморфизм. Сложный полиморфизм. Композиция. Наполнение.
Под объектом применительно к ООП понимается отдельно реализуемая часть предметной области задачи. Разрабатываемая программа состоит из объектов, которые взаимодействуют через передачу сообщений. Каждый объект, получая сообщения должен определенным образом «реагировать» на них, выполняя заранее определенные для каждого типа сообщения действия.
Реакция объекта на сообщение может зависеть от его состояния, так объект Файл, получив сообщение «Добавить запись», прежде, чем добавлять запись, должен проверить, открыт ли соответствующий файл, и при закрытом файле должен выдать пользователю отказ на выполнение операции добавления.
Состояние объекта характеризуется набором конкретных значений некоторого перечня всех возможных свойств данного объекта.
Набор свойств, в процессе функционирования не изменяется, могут изменяться лишь конкретные значения этих свойств.
Поведение объектов характеризуется определенным набором реакций на получаемые сообщения и часто зависит от состояния объекта.
Объекты, обладающие сходными состояниями и поведением с точки зрения решаемой задачи, образуют группу. Свойства объекта, которые отличают его от всех других объектов группы, составляют его индивидуальность.
Если объект может обладать некоторым состоянием, то, соответственно, может возникнуть необходимость в получении информации об этом состоянии. Для получения такой информации объекту посылается сообщение-запрос. В ответ на запрос, объект должен переслать отправителю требуемую информацию. В таких случаях говорят, что над объектом выполнена операция селекции.
Обращение к объекту для изменения его состояния по всем или отдельным составляющим инициирует выполнение операции модификации. Отправитель сообщения-команды, реакцией на которую должна быть модификация объекта, может ожидать завершения операции, а может продолжить выполнение своей программы. Второй вариант обработки называется асинхронным, и, его реализация требует использования (или моделирования) параллельной обработки.
Если объект содержит несколько однотипных компонент, например, массив чисел, то операция, требующая последовательной обработки этих компонент, называется итерацией. Поэлементно может выполняться как операции селекции, так и операции модификации.
Соответственно, каждое сообщение, принимаемое объектом, может инициировать выполнение одной или нескольких операций указанных типов.
Полный список возможных операций над объектами:
1) создание объекта;
2) уничтожение объекта;
3) модификация - изменение состояния объекта;
4) селекция - доступ для определения состояния;
5) итерация - доступ к содержимому объекта по частям в определенной последовательности (используется при наличии в объекте некоторых однотипных компонент).
При выполнении объектной декомпозиции устанавливаются отношения между объектами, которые могут быть двух типов.
В случае, когда один объект передает сообщение другому, говорят, что эти объекты находятся в отношении использования , причем объект, инициирующий сообщение называется активным, а объект, получающий сообщение - пассивным.
Соответственно, отношение использования может принимать форму воздействия (активный объект воздействует на пассивный объект, передавая ему сообщение), исполнения (пассивный объект исполняет указание активного объекта) и посредничества (некоторый объект - посредник, получив сообщение от активного объекта, передает его пассивному объекту).