Junior — Middle
Můžete vysvětlit koncept delegování v návrhových vzorech a jak se používá?
sobes.tech AI
Odpověď od AI
Delegace je návrhový vzor, při kterém jeden objekt předává vykonání určité úkolu jinému objektu, nazývanému delegát. To umožňuje rozdělení odpovědností a zvýšení flexibility kódu.
V iOS se delegace často používá k přenosu událostí nebo dat mezi objekty. Například UITableView používá delegáta k obsluze výběru buněk nebo nastavení vzhledu.
Příklad v Swift:
protocol MyDelegate: AnyObject {
func didFinishTask()
}
class Worker {
weak var delegate: MyDelegate?
func startTask() {
// Vykonání úkolu
// ...
delegate?.didFinishTask()
}
}
class Manager: MyDelegate {
func didFinishTask() {
print("Úkol dokončen")
}
}
let worker = Worker()
let manager = Manager()
worker.delegate = manager
worker.startTask()
Zde objekt Worker deleguje oznámení o dokončení úkolu objektu Manager.