Junior — Middle
Какво се разбира под концепцията за композиция в обектно-ориентираното програмиране?
sobes.tech AI
Отговор от 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 и използва неговите методи, без да наследява от него.