Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Модуль-1-шпора-ТРПО.doc
Скачиваний:
65
Добавлен:
21.03.2015
Размер:
2.59 Mб
Скачать

2.4.1 Ассоциации

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

Рассмотрим ассоциации с разных точек зрения.

С концептуальной т.з. ассоциации представляют собой концептуальные связи между классами. С этой т.з. на диаграмме (рисунок 2.2.) видно, что Заказ должен поступить от единственного Клиента, а Клиент может сделать несколько Заказов. Каждый из Заказов содержит несколько Строк Заказа, а каждая Строка Заказа соответствует единственному Продукту.

Любая ассоциация обладает двумя ролями. Роль представляет направление ассоциации. Т.о., ассоциация между Клиентом и Заказом содержит 2 роли – от Заказа к Клиенту и от Клиента к Заказу. Роль м.б. поименована с помощью метки. Например, роль ассоциации от Заказа к Строкам Заказа называется «позиции Заказа». Если метки нет, то роли присваивается имя класса-цели, т.е. роль ассоциации от Заказа к Клиенту м.б. названа «Клиент».

Роль обладает множественностью, которая показывает, сколько объектов может участвовать в данной связи. Множественность показывает нижнюю и верхнюю границы количества объектов, участвующих в связи. Символ * выражает диапазон «0-∞».

С т.з. спецификации ассоциации представляют собой ответственности классов. В примере (рисунок 2.2) подразумевается, что существует 1 или более методов, связанных с Клиентом, с помощью которых можно узнать, какие Заказы сделал данный Клиент. В классе Заказ существуют методы, с помощью которых можно узнать, какой Клиент сделал данный Заказ, и какие Строки Заказа входят в Заказ.

ДК в нашем примере предполагает, что существуют некоторые механизмы обновления связей. Например, должен существовать некоторый способ связи конкретного Заказа с конкретным Клиентом. Деталей этого способа на диаграмме нет. Например, это м.б. метод «добавить Заказ», связанный с Клиентом. Такой способ связи можно сделать более явным путем добавления операций в блок соответствующего класса на ДК.

Рассматривая ДК с т.з. спецификации, нельзя увидеть структуру данных для класса. На диаграмме показан только интерфейс.

3

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]