Агрегация и композиция — это оба типа отношений ассоциации в объектно-ориентированном программировании, которые представляют отношения «has-a» между объектами. Ключевое различие заключается в силе отношения и зависимости жизненного цикла между объектами.
Композиция представляет сильное отношение владения, где:
Car содержит SteeringWheel. Если машина уничтожена, руль теряет смысл и тоже уничтожаетсяАгрегация представляет более слабое отношение, где:
Library содержит Students. Если библиотека закрывается, студенты по-прежнему существуют и могут посещать другие библиотекиРассмотри два сценария:
Library содержит Books. Если библиотека уничтожена, её книги тоже уничтожаются, потому что они принадлежат исключительно этой библиотекеLibrary содержит Students. Если библиотека закрывается, студенты продолжают существовать, потому что они независимые сущностиИспользуй композицию, когда дочерние объекты являются неотъемлемой частью родителя и не могут логически существовать без него. Используй агрегацию, когда объекты имеют независимый жизненный цикл и могут существовать отдельно.
При composition жизненный цикл дочернего объекта зависит от родительского объекта, что означает, что дочерний объект не может существовать независимо после уничтожения родителя.
Новый — ещё не проверен сообществом
Вы