Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шаврин С.М. Моделирование и проектирование ИС.doc
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

Работа с коллекциями объектов

Для стандартных коллекций объектов, таких как список, массив и пр., в UML введено специальное понятие мультиобъекта. Пример мультиобъекта приведен на рис. 82. В имени мультиобъекта после двоеточия указывается тип элементов коллекции.

Рис. 82. Пример мультиобъекта

Рис. 83. Примеры работы с коллекциями

Важно понимать разницу между мультиобъектом и специализированной коллекцией. Мультиобъект – это стандартная коллекция объектов, которая реализуется такими классами, как, например, ArrayList в .NET. Соответственно мультиобъекту можно отправлять только простые сообщения, типа добавить/удалить элемент, получить количество элементов и т.д. Если нужна сложная логика (например, получить все продажи за некоторый период), то необходимо создавать отдельный класс. На рис. 83 представлены некоторые примеры работы с коллекцией товарных позиций.

Сообщения классу

Сообщения могут передаваться не только объектам, но и самим классам. Сообщение классу соответствует вызову статического метода. На рис. 84 представлен пример получения текущей даты при помощи сообщения классу. Класс на диаграмме отличается от объекта тем, что его имя не подчеркнуто и пишется без двоеточия.

Рис. 84. Пример сообщения классу

Видимость объектов

Видимость между объектами является необходимым условием для обмена сообщениями. Для отправки сообщения объектом А объекту Б необходимо, чтобы объект Б был виден объекту А. Существуют следующие четыре способа обеспечения видимости объекта Б объектом А:

  1. Посредством атрибутов (ассоциаций). Ссылка на объект Б является значением некоторого атрибута объекта А.

  2. Посредством параметров. Ссылка на Б передается в качестве параметра в некоторый метод объекта А.

  3. Локальная видимость. Ссылка на объект Б хранится в локальной переменной некоторого метода объекта А.

  4. Глобальная видимость. Объект Б доступен глобально объекту А.

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

Рис. 85. Видимость между объектами

В представленном выше списке способы обеспечения видимости перечислены в порядке убывания их приоритета. Если некоторый объект виден несколькими способами, то следует на диаграмме указывать тот способ, который имеет больший приоритет. Например, на рис. 85 объект оп: ОписаниеТовара передается в качестве параметра конструктора при создании объекта тп: ТоварнаяПозиция, после чего между ними формируется связь, соответствующая ассоциации «ссылается на» (рис. 71). Поскольку видимость посредством ассоциации имеет больший приоритет, чем видимость посредством параметра, то на диаграмме (рис. 85) указывается именно она.

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

Вопросы для самоконтроля

  1. В чем состоит основная цель этапа проектирования?

  2. В чем разница между диаграммой последовательностей и диаграммой сотрудничества?

  3. Что такое сотрудничество и взаимодействие? Как они связаны?

  4. Какие сообщения можно посылать мультиобъектам?

  5. Для чего нужна видимость между объектами?

  6. Какие существуют способы обеспечения видимости?

Задания для самостоятельной работы

  1. Постройте концептуальную модель диаграммы сотрудничества.

  2. Постройте диаграммы сотрудничества для учебного задания.