Шесть типов классовых отношений

Существует шесть основных типов отношений между классами: наследование, реализация/реализация, композиция, агрегация, ассоциация и зависимость. Стрелки для шести отношений следующие:

Тогда мы приходим к пониманию конкретного содержания классовых отношений.

UML class diagram relationships

Шесть типов отношений

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

Наследование

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

Реализация / Внедрение

Реализация (Implementation) в основном используется для указания связи между интерфейсами и классами реализации .
Интерфейс (включая абстрактный класс ) — это набор методов. В отношениях реализации класс реализует интерфейс, а методы в классе реализуют все методы объявления интерфейса.

Например: автомобили и корабли — это транспортные средства, а транспортное средство — всего лишь абстрактное понятие мобильного средства, а корабль и транспортное средство реализуют конкретные мобильные функции.

Связь композиции

Композиция: Отношения между целым и частью, но целое и часть не могут быть разделены .

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

Отношения агрегации

Агрегация: отношения между целым и частью, а также целым и частью могут быть разделены.
Агрегатные отношения также представляют отношения между целым и частью класса, объекты-члены являются частью общего объекта, но объект-член может существовать независимо от общего объекта.

Например, водители автобусов, рабочая одежда и головные уборы являются частью общих отношений, но их можно разделить. Рабочую одежду и головные уборы можно надевать на других водителей. Водители автобусов также могут носить другую рабочую одежду и головные уборы.

Отношения ассоциации

Ассоциация: указывает, что свойство класса содержит ссылку на экземпляр (или экземпляры) другого класса .
Ассоциация — это наиболее часто используемая связь между классом и классом, что означает наличие связи между одним типом объекта и другим типом объекта. Комбинации и агрегации также относятся к ассоциативным отношениям , но отношения между классами принадлежности слабее двух других.
Существует четыре вида ассоциаций : двусторонние ассоциации , односторонние ассоциации , самоассоциация и многозначные ассоциации .
Например: машины и водители, одна машина соответствует конкретному водителю, и один водитель может управлять несколькими машинами.
На диаграммах UML двунаправленные ассоциации могут иметь две стрелки или не иметь стрелок , а односторонние ассоциации или самоассоциации имеют стрелку .
В отношении множественности вы можете добавить число непосредственно к связанной строке, чтобы указать количество объектов в соответствующем классе.
  • 1..1: Единственный
  • 0..*: ноль или больше
  • 1..*:один или больше
  • 0..1: Нет или только один
  • m..n: не менее m, не более n (m<=n)

Зависимости

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

Отношение зависимости — это отношение «использования». Изменение в конкретной вещи может повлиять на другие вещи, которые ее используют, и использовать зависимость, когда необходимо указать, что одна вещь использует другую. Например: Автомобиль работает на бензине. Если нет бензина, машина не сможет ехать.

Диаграмма классов — система заказов
Диаграмма классов ниже моделирует заказ клиента из розничного каталога. Центральным классом является Орден . С ним связаны Клиент , совершающий покупку, и Платеж . Оплата может быть одного из четырех видов: наличные , чек , кредит или банковский перевод . Заказ содержит OrderDetails (элементы строки), каждый со своим связанным Item .

類圖模板:UML 類圖示例:銷售訂單系統(由 Visual Paradigm Online 的類圖製作者創建)

ИЗМЕНИТЬ ЭТОТ ШАБЛОН

Пример диаграммы классов: графический интерфейс

Диаграмма классов может также иметь примечания, прикрепленные к классам или отношениям.

類圖模板:類圖 GUI 示例(由 Visual Paradigm Online 的類圖製作者創建)

ИЗМЕНИТЬ ЭТОТ ШАБЛОН

Диаграмма классов с пользовательским ограничением

 

類圖模板:類圖 - 類和包約束(由 Visual Paradigm Online 的類圖製作者創建)

ИЗМЕНИТЬ ЭТОТ ШАБЛОН

Среди шести типов отношений кодовая структура комбинации, агрегации и ассоциации одинакова, и ее можно понять по силе отношения. Порядок от сильного к слабому: наследование → реализация → композиция → агрегация → ассоциация → зависимость . Ниже приведена полная диаграмма UML.