Лабораторная работа №25. Понятие графа. Алгоритмы поиска кратчайших путей


Download 1.45 Mb.
bet28/39
Sana13.09.2023
Hajmi1.45 Mb.
#1677325
TuriЛабораторная работа
1   ...   24   25   26   27   28   29   30   31   ...   39
Bog'liq
Blok 5

Двунаправленные ассоциации
Двунаправленная ассоциация, показанная на рис. 6, – это пара свойств, связанных в противоположных направлениях. Класс Car (Автомобиль) имеет свойство owner:Person[1], а класс Person (Личность) имеет свойство cars:Car[*]. (Обратите внимание, что использована множественная форма имени свойства cars по причине того, что у свойства кратность больше 1.)

Рис. 6. Двунаправленная ассоциация
Агрегация и композиция
Простая ассоциация между двумя классами отражает структурное отношение между равноправными сущностями, когда оба класса находятся на одном концептуальном уровне и ни один не является более важным, чем другой. Но иногда приходится моделировать отношение типа "часть/целое", в котором один из классов имеет более высокий ранг (целое) и состоит из нескольких меньших по рангу (частей). К примеру, можно сказать, что двигатель и колеса представляют собой части автомобиля.​
Отношение такого типа называют агрегированием​ (aggregation); оно причислено к отношениям типа​ "имеет" (с учетом того, что объект­целое имеет несколько объектов­частей). Агрегирование является частным случаем ассоциации и изображается в виде простой ассоциации с незакрашенным ромбом со стороны "целого" (рис. 7).
Наряду с агрегацией в языке UML есть более определенное свойство – композиция​ (composition).​ Композиция — более строгий вариант агрегации. Композиция имеет жёсткую зависимость времени существования экземпляров класса­контейнера и экземпляров содержащихся классов. Если контейнер будет уничтожен, то всё его содержимое будет также уничтожено. Графически представляется так же, как и агрегация, но с закрашенным ромбиком.
На рис. 8 экземпляр класса Point (Точка) может быть частью многоугольника, а может представлять центр окружности, но он не может быть и тем и другим одновременно. Главное правило состоит в том, что хотя класс может быть частью нескольких других классов, но любой экземпляр может принадлежать только одному владельцу. На диаграмме классов можно показать несколько классов потенциальных владельцев, но у любого экземпляра класса есть только один объект­владелец.
Можно заметить, что на рис. 8 не показаны обратные кратности. В большинстве случаев, как и здесь, они равны 0..1. Единственной альтернативой является значение 1, когда класс­компонент разработан таким образом, что у него только один класс­владелец.
Правило «нет совместного владения» является ключевым в композиции. Другое допущение состоит в том, что если удаляется многоугольник (Polygon), то автоматически должны удалиться все точки (Points), которыми он владеет.

Рис. 7. Агрегация

Рис. 8. Композиция

Download 1.45 Mb.

Do'stlaringiz bilan baham:
1   ...   24   25   26   27   28   29   30   31   ...   39




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling