Sobes.tech
Junior — Middle

Mit értünk az összetétel fogalmán az objektumorientált programozásban?

sobes.tech MI

Válasz az MI-től

A tárgyorientált programozásban a kompozíció egy olyan elv, amely szerint egy objektum más objektumokra mutató hivatkozásokat tartalmaz, hogy kihasználja azok funkcionalitását. Ez egy módja annak, hogy összetett objektumokat építsünk egyszerűbbekből, ahol egy objektum "áll" másokból.

A kompozíció különbözik az örökléstől abban, hogy ahelyett, hogy egy osztályt örökléssel bővítenénk, egy objektum más objektumokat tartalmaz, és azoknak részfeladatokat delegál. Ez növeli a kód rugalmasságát és újrahasznosíthatóságát.

Példa Swift-ben:

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

class Car {
    private let engine = Engine()  // kompozíció: Car tartalmaz Engine-t

    func startCar() {
        engine.start()  // a motor indítását delegáljuk
    }
}

let car = Car()
car.startCar()  // Kiírja: Motor elindult

Itt a Car osztály egy Engine objektumból áll, és használja annak metódusait, anélkül, hogy öröklődne tőle.