В структурной диаграмме классов UML существуют следующие виды отношений:
Ассоциация (Association): Отношение между двумя или более классами, описывающее связь между их экземплярами. Может быть направленной или ненаправленной. Может включать кратность (multiplicity), определяющую количество экземпляров одного класса, связанных с экземплярами другого. Примеры кратности: 1 (ровно один), 0..1 (ноль или один), 1..* (один или более), * (ноль или более).
Агрегация (Aggregation): Специальный случай ассоциации, представляющий отношение "часть-целое" (part-whole). "Часть" может существовать независимо от "целого". Графически изображается незакрашенным ромбом на стороне "целого".
Композиция (Composition): Более строгий вариант агрегации. "Часть" не может существовать без "целого". При удалении "целого" удаляется и "часть". Графически изображается закрашенным ромбом на стороне "целого".
Зависимость (Dependency): Отношение, в котором изменение спецификации одного элемента (поставщика) влияет на другой элемент (клиента), но не наоборот. Клиент зависит от поставщика. Обычно изображается пунктирной стрелкой от клиента к поставщику. Часто используется для связей между классами, где один класс использует другой как параметр метода, локальную переменную или возвращаемое значение.
Обобщение/Наследование (Generalization): Отношение подобия между более общим элементом (суперкласс) и более специфическими элементами (подклассы). Подкласс наследует свойства и поведение суперкласса и может добавлять или переопределять их. Изображается незакрашенной треугольной стрелкой от подкласса к суперклассу.
Реализация (Realization): Отношение между двумя элементами модели, в котором один элемент (клиент) реализует (предоставляет реализацию) поведение, заданное другим элементом (поставщиком). Чаще всего используется для связи класса и интерфейса, где класс реализует методы, определенные в интерфейсе. Изображается пунктирной стрелкой с незакрашенным треугольником на конце от реализующего элемента к реализуемому.
Пример отношения наследования:
java
Пример отношения реализации:
java