Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тема-05-02испр.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
797.95 Кб
Скачать

5.2.4.9. Ассоциации

Ассоциация (association) описывает семантические связи между единичными объектами оп­ределенных классов. Основная задача ассоциации состоит в обеспечении взаимодействия объек­тов, принадлежащих разным классам. Все остальные виды отношений относятся к самим класси­фикаторам, но не к их экземплярам. Ассоциация представляет собой упорядоченный список из двух или более классификаторов, с разрешенными повторениями. Наиболее часто встречается би­нарная ассоциация, то есть ассоциация между одной парой классификаторов. Экземпляром ассо­циации является связь. Связь соединяет упорядоченный список объектов, каждый из которых от­носится к определенному классу. Бинарная связь соединяет два объекта. Ассоциации несут ин­формацию о связях между объектами внутри одной системы. В процессе работы эти связи могут возникать и исчезать. Они являются тем «клеем», который соединяет воедино все части системы. Не будь ассоциаций, вместо работающей системы мы имели бы просто набор изолированных классов. Если один и тот же класс присутствует в ассоциации несколько раз, то объект этого клас­са может иметь связь сам с собой. Если один и тот же класс присутствует в ассоциации два раза, то два объекта, которые связываются этой ассоциацией, могут не являться одним и тем же объек­том.

Каждая связь ассоциации с классом называется полюсом ассоциации. Вся основная инфор­мация об ассоциации прикрепляется к одному из ее полюсов. Полюса ассоциации обладают име­нами (именами ролей) и видимостью. Наиболее ценное их свойство – множественность, которая указывает на то, сколько экземпляров одного класса может быть связано с одним экземпляром другого класса. Множественность удобнее всего использовать в бинарных ассоциациях, так как в ассоциациях, связывающих более двух классов, это может быть затруднительно.

Продолжим рассмотрение примера с баскетбольной командой. Исходная модель игры в бас­кетбол содержит несколько подобных примеров. Рассмотрим одну ассоциацию – между игроком и командой. Ее можно охарактеризовать фразой «игрок играет в команде» и отобразить в виде со­единяющей два класса линии, указав имя ассоциации (играет в) прямо над этой линией. На рис 5.2-24 показано, как изобразить ассоциацию играет в между игроком и командой.

Рис. 5.2-24. Ассоциация между игроком и командой.

Когда один класс ассоциируется с другим, каждый из них играет свою роль в этой ассоциа­ции. Такие роли можно показать на диаграмме над или под линией ассоциации возле обозначения класса, выполняющего соответствующую роль. В ассоциации между профессиональным игроком и командой эти роли носят название наемный работник и наниматель.

Ассоциация может работать в другом направлении: команда нанимает игроков. Обе ассоциа­ции можно показать на одной диаграмме, сопровождая их стрелкой соответствующей ориентации (рис. 5.2-25).

Играет в

^ Команда

<Г

Рис. 5.2-25. На одной диаграмме можно показать две ассоциации между классами

-

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

Рис. 5.2-26. С одним классом могут ассоциироваться несколько других

Иногда ассоциация между двумя классами должна удовлетворять некоторому правилу. Это правило заключается в размещении ограничения возле линии ассоциации. Например, Банковский-Служащий обслуживает клиентов по очереди. Этот факт отражается в модели с помощью фразы «по очереди» в фигурных скобках возле класса Клиент (для отражения ограничения) (рис. 5.2-27).

Рис. 5.2-27. Ограничение ассоциации Обслуживает {по очереди}

Другой тип ограничения представляется отношением ИЛИ, которое обозначается с помощью пунктирной линии, соединяющей две линии ассоциаций, с надписью «{или}». Модель на рис. 5.2-28 показывает студента, выбирающего бюджетную или коммерческую форму обучения.

Рис. 5.2-28. Отношение ИЛИ между двумя ассоциациями