logo
otvety_all

Уточнение отношений классов.

Процесс проектирования классов начинают с уточнения отношений между ними. Па этапе проектирования помимо ассоциации и обобщения различают еще два типа отношения между классами: агрегацию и композицию.

К сожалению, до настоящего времени не существует единой устоявшейся терминологии объектно-ориентированного проектирования. В табл. 14.1 приведены соответствия между основными терминами, используемыми наиболее известными авторами в этой области.

Агрегацией называют ассоциацию между целым и его частью или частями. Агрегацию вместо ассоциации указывают, если отношение «целое-часть» в конкретном случае существенно. Например, если колесо нас интересует только как часть автомобиля, то между соответствующими классами целесообразно указать отношение агрегации, а если колесо – товар, также как и автомобиль, то связь целое-часть не существенна.

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

Уточненные отношения между классами фиксируют на диаграмме классов. Для этого используют специальные уловные обозначения (рис. 14.11).

Рис. 14.11. Условные обозначения специальных видов ассоциации: а — композиция; б – агрегация

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

Таблица 14.1

Нотация

Термины

UML

Класс

Ассоциация

Обобщение

Агрегация

Буч

Класс

Использование

Наследование

Включение

Коад

Класс, объект

Связь экземпляров

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

Часть-целое

Якобсон

Объект родства

Ассоциация

Наследование

Состоит из

Оделл

Тип объекта

Связь

Подтип

Композиция

Рамбо

Класс

Ассоциация

Обобщение

Агрегация

Шлеер/Меллор

Объект

Связь

Подтип

Не определена

Специальное обозначение на диаграмме классов этапа проектирования используют для указания абстрактных классов и методов: на диаграмме классов их имена выделяют курсивом, либо перед именем класса указывают стереотип «abstract».

UML также включает специальную нотацию для обозначения параметризованных классов или шаблонов (рис. 14.12, а). Получение из такого класса, класса с конкретными типами элементов называют связыванием. Связывание можно обозначить двумя способами: явно указав тип параметра (рис. 14.12, б) и используя условное обозначение уточнения (рис. 14.12, в).

Рис. 14.12. Условное обозначение параметризованного класса: а – параметризованный класс, б – явное указания типа параметра при связывании; виспользование уточнения

Диаграммы классов позволяют также отобразить ограничения, которые невозможно показать, используя только понятия, рассмотренные выше (ассоциации, обобщения, атрибуты, операции). Например, показать, что средний балл студентов должен определяться по соответствующей формуле. Подобную, информацию на диаграмме классов можно представить в виде записи на естественном языке или в виде математической формулы, поместив их" в фигурные скобки.

Особое место в процессе проектирования классов занимает проектирование интерфейсов.

Yandex.RTB R-A-252273-3
Yandex.RTB R-A-252273-4