Sobes.tech
Junior — Middle

Šta podrazumeva koncept kompozicije u objektno-orijentisanom programiranju?

sobes.tech АИ

Одговор од АИ

U objektno-orijentisanom programiranju, kompozicija je princip gde jedan objekat sadrži reference na druge objekte kako bi koristio njihovu funkcionalnost. To je način za građu složenih objekata od jednostavnijih, gde jedan objekat "sastoji" od drugih.

Kompozicija se razlikuje od nasleđivanja po tome što, umesto proširenja klase putem nasleđivanja, objekat uključuje druge objekte i delegira im deo posla. To povećava fleksibilnost i ponovnu upotrebu koda.

Primer u Swift-u:

class Engine {
    func start() {
        print("Motor je pokrenut")
    }
}

class Car {
    private let engine = Engine()  // kompozicija: Car sadrži Engine

    func startCar() {
        engine.start()  // delegiramo pokretanje motora
    }
}

let car = Car()
car.startCar()  // Ispisaće: Motor je pokrenut

Ovde, klasa Car sastoji se od objekta Engine i koristi njegove metode, bez nasleđivanja od njega.