Sobes.tech
Junior — Middle

Ce se înțelege prin conceptul de compoziție în programarea orientată pe obiecte?

sobes.tech AI

Răspuns de la AI

În programarea orientată pe obiecte, compoziția este un principiu conform căruia un obiect conține referințe către alte obiecte pentru a utiliza funcționalitatea acestora. Este o modalitate de a construi obiecte complexe din cele mai simple, unde un obiect "constă" din altele.

Compoziția diferă de moștenire prin faptul că, în loc să extindă o clasă prin moștenire, un obiect include alte obiecte și le delegă o parte din muncă. Acest lucru crește flexibilitatea și reutilizarea codului.

Exemplu în Swift:

class Engine {
    func start() {
        print("Motor pornit")
    }
}

class Car {
    private let engine = Engine()  // compoziție: Car conține Engine

    func startCar() {
        engine.start()  // delegăm pornirea motorului
    }
}

let car = Car()
car.startCar()  // Va afișa: Motor pornit

Aici, clasa Car este formată dintr-un obiect Engine și utilizează metodele sale, fără a moșteni de la el.