Sobes.tech
Junior — Middle

Čo sa rozumie pod pojmom koncept kompozície v objektovo orientovanom programovaní?

sobes.tech AI

Odpoveď od AI

V objektovo orientovanom programovaní je kompozícia princíp, pri ktorom jeden objekt obsahuje odkazy na iné objekty, aby využil ich funkčnosť. Je to spôsob, ako stavať zložité objekty z jednoduchších, kde jeden objekt "skladá" z iných.

Kompozícia sa líši od dedičnosti tým, že namiesto rozširovania triedy cez dedičnosť, objekt obsahuje iné objekty a deleguje im časť práce. To zvyšuje flexibilitu a opätovné použitie kódu.

Príklad v Swift:

class Engine {
    func start() {
        print("Motor spustený")
    }
}

class Car {
    private let engine = Engine()  // kompozícia: Car obsahuje Engine

    func startCar() {
        engine.start()  // delegujeme spustenie motora
    }
}

let car = Car()
car.startCar()  // Vypíše: Motor spustený

Tu je trieda Car zložená z objektu Engine a využíva jeho metódy, bez dedičnosti od neho.