Back to questions
Junior — Middle
87
Что подразумевается под концепцией композиции в объектно-ориентированном программировании?
Answer from AI
sobes.tech AI
В объектно-ориентированном программировании композиция — это принцип, при котором один объект содержит ссылки на другие объекты, чтобы использовать их функциональность. Это способ построения сложных объектов из более простых, где один объект «состоит» из других.
Композиция отличается от наследования тем, что вместо расширения класса через наследование, объект включает в себя другие объекты и делегирует им часть работы. Это повышает гибкость и повторное использование кода.
Пример на Swift:
class Engine {
func start() {
print("Двигатель запущен")
}
}
class Car {
private let engine = Engine() // композиция: Car содержит Engine
func startCar() {
engine.start() // делегируем запуск двигателя
}
}
let car = Car()
car.startCar() // Выведет: Двигатель запущен
Здесь класс Car состоит из объекта Engine и использует его методы, не наследуясь от него.