Отношения в диаграммах классов
В диаграммах классов можно использовать следующие отношения:
Ассоциации отображают структурные отношения между экземплярами классов, то есть соединения между объектами. Каждая ассоциация может иметь метку — имя, которое описывает природу отношения (рис. 3.10).
Рисунок 3.11 Отношение ассоциации
Когда класс участвует в ассоциации, он играет в этом отношении определенную роль. Роль определяет, каким представляется класс на одном конце ассоциации для класса на противоположном конце ассоциации. Один и тот же класс в разных ассоциациях может играть разные роли. Часто важно знать, как много объектов может соединяться через экземпляр ассоциации. Это количество называется мощностью роли в ассоциации.
В языке UML ассоциации могут иметь свойства. Свойства класса-ассоциации характеризуют не один, а пару объектов, в данном случае — Профессор и Университет (рис. 3.12).
Рисунок 3.12. Класс-ассоциация
Отношения агрегации и композиции в языке UML считаются разновидностями ассоциации, применяемыми для отображения структурных отношений между «целым» (агрегатом) и его «частями». Агрегация показывает отношение по ссылке (в агрегат включены только указатели на части), композиция — отношение физического включения (в агрегат включены сами части).
Агрегация – это связь между целым и его частью. Например, у вас может быть класс Автомобиль, а также классы Двигатель, Покрышки и классы для других частей автомобиля. В результате объект класса Автомобиль будет состоять из объекта класса Двигатель, четырех объектов Покрышек и т. д. (рис. 3.13).
Рисунок 3.13 Отношение агрегации
Согласно композиции, объект-часть может принадлежать только единственному целому, и, кроме того, как правило, жизненный цикл частей совпадает с циклом целого (агрегата): не могут существовать без целого, удаление целого распространяется на его части. Например, если необходимо удалить Клиента, то это удаление должно распространиться и на Заказы (рис.3.14).
Рисунок 3.14 Отношение агрегации
С помощью обобщений показывают связи наследования между двумя классами. Большинство объектно-ориентированных языков непосредственно поддерживают концепцию наследования. Она позволяет одному классу наследовать все атрибуты, операции и связи другого. На языке UML связи наследования называют обобщениями и изображают в виде стрелок от класса-потомка к классу-предку (рис. 3.15).
Рисунок 3.15. Отношение обобщения
Связи зависимоститакже отражают связь между классами, но они всегда однонаправлены и показывают, что один класс зависит от определений, сделанных в другом. Зависимости изображают в виде стрелки, проведенной пунктирной линией.
Т. е. это отношение является отношением использования между клиентом (зависимым элементом) и поставщиком (независимым элементом). Обычно операции клиента:
● вызывают операции поставщика;
● имеют описания, в которых возвращаемое значение или аргументы принадлежат классу поставщика.
Рисунок 3.16. Отношение зависимости
На рис. 3.16. показано отношение зависимости между клиентом (Группой) и поставщиком (Шаблоном для поиска). В классе Группа есть метод Поиск, параметром которого является объект класса Шаблон.
Реализация – отношение между классами, при котором класс-приемник реализует операции, заявленные в классе-источнике (интерфейсе). Интерфейс – это абстрактный класс, в котором все составляющие — атрибуты и операции — абстрактны, он не может иметь экземпляров. Интерфейс нужен для того, чтобы определить логику работы с данной иерархией классов. На рис. 3.17. показано, что класс Студент реализует интерфейс IStudy, но способы реализации операций интерфейса у классов могут быть разные.
Рисунок 3.17. Отношение реализации
Дата добавления: 2021-05-28; просмотров: 322;