Junior — Middle
Pode explicar o conceito de delegação nos padrões de design e como ele é aplicado?
sobes.tech IA
Resposta da IA
Delegação é um padrão de projeto em que um objeto passa a execução de uma tarefa específica para outro objeto, chamado delegado. Isso permite dividir responsabilidades e aumentar a flexibilidade do código.
No iOS, a delegação é frequentemente usada para transmitir eventos ou dados entre objetos. Por exemplo, UITableView usa um delegado para lidar com a seleção de células ou configuração da aparência.
Exemplo em Swift:
protocol MyDelegate: AnyObject {
func didFinishTask()
}
class Worker {
weak var delegate: MyDelegate?
func startTask() {
// Executar tarefa
// ...
delegate?.didFinishTask()
}
}
class Manager: MyDelegate {
func didFinishTask() {
print("Tarefa concluída")
}
}
let worker = Worker()
let manager = Manager()
worker.delegate = manager
worker.startTask()
Aqui, o objeto Worker delega a notificação do término da tarefa ao objeto Manager.