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