Связи обозначают равноправные (клиент-серверные) отношения между объектами. Агрегация обозначает отношения объектов в иерархии «целое/часть». Агрегация обеспечивает возможность перемещения от целого (агрегата) к его частям (свойствам).
Агрегация может обозначать, а может и не обозначать физическое включение части в целое. На рис. 19 приведен пример физического включения (композиции) частей (Двигателя, Сидений, Колес) в агрегат Автомобиль. В этом случае говорят, что части включены в агрегат по величине.
Рис. 19. Физическое включение частей в агрегат
На рис. 20 приведен пример нефизического включения частей (Студента, Преподавателя) в агрегат Вуз. Очевидно, что Студент и Преподаватель являются элементами Вуза, но они не входят в него физически. В этом случае говорят, что части включены в агрегат по ссылке.
Рис. 20. Нефизическое включение частей в агрегат
Итак, между объектами существуют два вида отношений — связи и агрегация. Какое из них выбрать?
При выборе вида отношения должны учитываться следующие факторы:
· связи обеспечивают низкое сцепление между объектами;
· агрегация инкапсулирует части как секреты целого.