Sobes.tech
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 и използва неговите методи, без да наследява от него.