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.