Sobes.tech
Junior — Middle

Ko saprotam ar kompozīcijas jēdzienu objektorientētajā programmēšanā?

sobes.tech AI

Atbilde no AI

Objektorientētajā programmēšanā kompozīcija ir princips, kurā viens objekts satur atsauces uz citām objektiem, lai izmantotu to funkcionalitāti. Tas ir veids, kā būvēt sarežģītus objektus no vienkāršākiem, kur viens objekts "veido" no citiem.

Kompozīcija atšķiras no mantošanas ar to, ka, nevis paplašinot klasi ar mantošanu, objekts iekļauj citus objektus un deleģē tiem daļu no darba. Tas palielina koda elastību un atkārtotu izmantošanu.

Piemērs Swift:

class Engine {
    func start() {
        print("Motors ieslēgts")
    }
}

class Car {
    private let engine = Engine()  // kompozīcija: Car satur Engine

    func startCar() {
        engine.start()  // deleģē motora ieslēgšanu
    }
}

let car = Car()
car.startCar()  // Izvadīs: Motors ieslēgts

Šeit, klase Car sastāv no Engine objekta un izmanto tā metodes, bez mantošanas no tā.