Sobes.tech
Junior — Middle

Co se rozumí pod pojmem koncept složení v objektově orientovaném programování?

sobes.tech AI

Odpověď od AI

V objektově orientovaném programování je kompozice princip, podle kterého jeden objekt obsahuje odkazy na jiné objekty, aby využil jejich funkčnost. Je to způsob, jak sestavit složité objekty z jednodušších, kde jeden objekt "sestává" z jiných.

Kompozice se liší od dědičnosti tím, že místo rozšiřování třídy pomocí dědičnosti, objekt obsahuje jiné objekty a deleguje jim část práce. To zvyšuje flexibilitu a opakované použití kódu.

Příklad v Swift:

class Engine {
    func start() {
        print("Motor spuštěn")
    }
}

class Car {
    private let engine = Engine()  // kompozice: Car obsahuje Engine

    func startCar() {
        engine.start()  // delegujeme spuštění motoru
    }
}

let car = Car()
car.startCar()  // Vypíše: Motor spuštěn

Zde je třída Car složena z objektu Engine a využívá jeho metody, aniž by od něj dědila.