Junior — Middle
Môžete vysvetliť koncept delegovania v návrhových vzorcoch a ako sa používa?
sobes.tech AI
Odpoveď od AI
Delegovanie je vzor návrhu, pri ktorom jeden objekt odovzdá vykonanie určitej úlohy inému objektu, nazývanému delegát. To umožňuje rozdelenie zodpovedností a zvýšenie flexibility kódu.
V iOS sa delegovanie často používa na prenos udalostí alebo údajov medzi objektmi. Napríklad, UITableView používa delegáta na spracovanie výberu buniek alebo nastavenie vzhľadu.
Príklad v Swift:
protocol MyDelegate: AnyObject {
func didFinishTask()
}
class Worker {
weak var delegate: MyDelegate?
func startTask() {
// Vykonanie úlohy
// ...
delegate?.didFinishTask()
}
}
class Manager: MyDelegate {
func didFinishTask() {
print("Úloha dokončená")
}
}
let worker = Worker()
let manager = Manager()
worker.delegate = manager
worker.startTask()
Tu, objekt Worker deleguje oznámenie o dokončení úlohy na objekt Manager.