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.