Back to questions
Junior — Middle
79
Можете объяснить концепцию делегирования в паттернах проектирования и как она применяется?
Companies where asked
AppMaster
Touch Instinct
Answer from AI
sobes.tech AI
Делегирование — это паттерн проектирования, при котором один объект передаёт выполнение определённой задачи другому объекту, называемому делегатом. Это позволяет разделить ответственность и повысить гибкость кода.
В iOS делегирование часто используется для передачи событий или данных между объектами. Например, UITableView использует делегат для обработки выбора ячейки или настройки внешнего вида.
Пример на Swift:
protocol MyDelegate: AnyObject {
func didFinishTask()
}
class Worker {
weak var delegate: MyDelegate?
func startTask() {
// Выполняем задачу
// ...
delegate?.didFinishTask()
}
}
class Manager: MyDelegate {
func didFinishTask() {
print("Задача завершена")
}
}
let worker = Worker()
let manager = Manager()
worker.delegate = manager
worker.startTask()
Здесь объект Worker делегирует уведомление о завершении задачи объекту Manager.