Принципы объектно-ориентированного представления программных систем
Автор: Пользователь скрыл имя, 05 Сентября 2011 в 18:58, творческая работа
Описание работы
Создавая понятие в интересах какой-либо задачи, мы отвлекаемся (абстрагируемся) от несущественных характеристик конкретных объектов, определяя только существенные характеристики
Активный объект имеет собственный канал (поток) управления, пассивный — нет. Активный объект автономен, он может проявлять свое поведение без воздействия со стороныдругих объектов. Пассивный объект, наоборот, может изменять свое состояние только под воздействием другихобъектов.
Видыотношениймеждуобъектами
В поле зрения разработчика ПО находятся не объекты-одиночки, а взаимодействующие объекты, ведь именно взаимодействие объектов реализует поведение системы. У Г. Буча есть отличная цитата из Галла: «Самолет — это набор элементов, каждый из которых по своей природе стремится упасть на землю, но ценой совместных непрерывных усилий преодолевает эту тенденцию» .
Отношения между парой объектов основываются на взаимной информации о разрешенных операциях и ожидаемом поведении.
Связи
Связь — это физическое или понятийное соединение между объектами. Объект сотрудничает с другими объектами через соединяющие ихсвязи. Связь обозначает соединение, с помощью которого:
объект-клиент вызывает операции объекта-поставщика;
один объект перемещает данные к другому объекту.
Можно сказать, что связи являются рельсами между станциями-объектами, по которым ездят
«трамвайчики сообщений».
Связи между объектами показанына рис. с помощью соединительных линий. Связи представляют возможные пути для передачи сообщений. Сами сообщения показаны стрелками, отмечающими их направления, и помечены именами вызываемых операций.
Как участник связи объект может играть одну из трех ролей:
актер — объект, который может воздействовать на другие объекты, но никогда не подвержен воздействию других объектов;
сервер — объект, который никогда не воздействует на другие объекты, он только используется другими объектами;
агент — объект, который может как воздействовать на другие объекты, так и использоваться ими. Агент создается для выполнения работы от имени актера или другого агента.
Видимостьобъектов
Рассмотрим два объекта, А и В, между которыми имеется связь. Для того чтобы объект А мог послать сообщение в объект В, надо, чтобы В был виден для А.
Различают четыре формы видимости между объектами.
1. Объект-поставщик (сервер) глобален для клиента.
2. Объект-поставщик (сервер) является параметром операции клиента.
3. Объект-поставщик (сервер) является частью объекта-клиента.
4. Объект-поставщик (сервер) является локально объявленным объектом в операции клиента.
На этапе анализа вопросы видимости обычно опускают. На этапах проектирования и реализации вопросы видимости по связям обязательно должны рассматриваться.
Агрегация
Связи обозначают равноправные
(клиент-серверные) отношения между объектами. Агрегация обозначает отношенияобъектов в иерархии
«целое/часть». Агрегация обеспечивает возможность перемещения от целого
(агрегата) к его частям
(свойствам).
Агрегация может обозначать, а может и не обозначать физическое включение части в целое. На рис. приведен пример физического включения (композиции) частей (Двигателя, Сидений, Колес) в агрегат Автомобиль. В этом случае говорят, что части включены в агрегат по величине.