Junior — Middle
Czy możesz wyjaśnić koncepcję delegowania w wzorcach projektowych i jak jest ona stosowana?
sobes.tech AI
Odpowiedź od AI
Delegowanie to wzorzec projektowy, w którym jeden obiekt przekazuje wykonanie określonego zadania innemu obiektowi, nazywanemu delegatem. Pozwala to na podział odpowiedzialności i zwiększenie elastyczności kodu.
W iOS delegowanie jest często używane do przekazywania zdarzeń lub danych między obiektami. Na przykład, UITableView używa delegata do obsługi wyboru komórek lub konfiguracji wyglądu.
Przykład w Swift:
protocol MyDelegate: AnyObject {
func didFinishTask()
}
class Worker {
weak var delegate: MyDelegate?
func startTask() {
// Wykonaj zadanie
// ...
delegate?.didFinishTask()
}
}
class Manager: MyDelegate {
func didFinishTask() {
print("Zadanie zakończone")
}
}
let worker = Worker()
let manager = Manager()
worker.delegate = manager
worker.startTask()
Tutaj obiekt Worker deleguje powiadomienie o zakończeniu zadania obiektowi Manager.