Junior — Middle
Можете ли да објасните концепт делегирања у шаблонима дизајна и како се примењује?
sobes.tech АИ
Одговор од АИ
Delegacija je obrazac dizajna u kojem jedan objekat prenosi izvršenje određenog zadatka drugom objektu, nazvanom delegat. Ovo omogućava deljenje odgovornosti i povećava fleksibilnost koda.
U iOS-u, delegacija se često koristi za prenos događaja ili podataka između objekata. Na primer, UITableView koristi delegata za obradu izbora ćelija ili podešavanje izgleda.
Primer u Swift-u:
protocol MyDelegate: AnyObject {
func didFinishTask()
}
class Worker {
weak var delegate: MyDelegate?
func startTask() {
// Izvršavanje zadatka
// ...
delegate?.didFinishTask()
}
}
class Manager: MyDelegate {
func didFinishTask() {
print("Zadatak je završen")
}
}
let worker = Worker()
let manager = Manager()
worker.delegate = manager
worker.startTask()
Ovde, objekat Worker delegira obaveštenje o završetku zadatka objektu Manager.