Существует три наиболее распространенных взаимосвязи между классами: зависимость (использование-A), агрегация (HAS-A) и наследование (IS-A).
Давайте возьмем онлайн -систему заказа в книжном магазине в качестве примера, чтобы подробно объяснить концепции этих трех отношений.
Основная функция онлайн -системы заказа в книжном магазине: зарегистрированные пользователи могут войти в онлайн -магазин для покупки книг, заполнения заказов в Интернете и оплатить покупку книг. Когда книжный магазин подтверждает, что оплата за покупку была получена, книга будет отправлена по почте в соответствии с адресом, оставленным пользователем. В этой системе можно установить несколько категорий, включая книги, учетные записи, заказы, адреса и т. Д., Как показано на рисунке ниже:
Зависимость (использует-а)
Зависимости являются наиболее распространенными отношениями в классе. Например, класс заказа должен получить доступ к классу учетной записи пользователя, поэтому класс учетной записи должен быть указан в классе заказа, то есть класс заказа зависит от класса учетной записи, но класс книг не должен полагаться на класс учетной записи.
Если вы измените класс учетной записи, это повлияет на класс заказа. Суть зависимости заключается в том, что методы в классе могут управлять экземплярами другого класса. В реальном программировании рекомендуется минимизировать количество взаимозависимых классов. Как показано на рисунке ниже:
Агрегация (HAS-A)
Поскольку заказ должен указать, какие книги заказывают, это включает в себя категорию книги, то есть он включает в себя категорию книги. Разница между агрегацией и зависимостью состоит в том, что класс заказа может не владеть всеми объектами класса учетных записей, но должен владеть всеми объектами класса книги, потому что объект класса книги является основной целью порядка, как показано на рисунке ниже:
наследовать
Наследование означает, что один класс может вызвать все члены данных другого класса и не нужно переопределить в текущем классе. Эта глава уже объяснила это очень четко.