Junior — Middle
El tudná magyarázni a delegálás fogalmát a tervezési mintákban, és hogyan alkalmazzák?
sobes.tech MI
Válasz az MI-től
A delegálás egy tervezési minta, amelyben egy objektum egy adott feladat végrehajtását egy másik objektumnak, a delegáltnak adja át. Ez lehetővé teszi a felelősségek megosztását és a kód rugalmasságának növelését.
Az iOS-ben a delegálás gyakran használatos események vagy adatok átadására objektumok között. Például, a UITableView egy delegáltat használ a cellák kiválasztásának vagy a megjelenés beállításának kezelésére.
Swift példában:
protocol MyDelegate: AnyObject {
func didFinishTask()
}
class Worker {
weak var delegate: MyDelegate?
func startTask() {
// Feladat végrehajtása
// ...
delegate?.didFinishTask()
}
}
class Manager: MyDelegate {
func didFinishTask() {
print("Feladat befejezve")
}
}
let worker = Worker()
let manager = Manager()
worker.delegate = manager
worker.startTask()
Itt a Worker objektum átadja a feladat befejezéséről szóló értesítést a Manager objektumnak.