Композиция — это фундаментальная концепция в объектно-ориентированном программировании (OOP), которая представляет отношение "содержит" между классами. Она возникает, когда один класс содержит экземпляр другого класса как поле.
Возьми класс Car, который содержит объект SteeringWheel:
Class Car {
SteeringWheel steering_wheel;
Engine engine;
}
В этом примере класс Car содержит SteeringWheel и содержит Engine. Эти компоненты являются неотъемлемыми частями автомобиля.
Если наследование представляет отношение "является" (например, Car является Vehicle), то композиция представляет отношение "содержит" (например, Car содержит Engine). Композиция зачастую предпочтительнее, так как обеспечивает большую гибкость и позволяет избежать сильной связанности между классами.
Композиция устанавливает отношение «содержит» (has-a), когда один класс содержит экземпляр другого класса как переменную-член, создавая отношение целое-часть между объектами.
Новый — ещё не проверен сообществом
Вы