Sobes.tech
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.