Sobes.tech
Junior — Middle

Puteți explica conceptul de delegare în modelele de proiectare și cum se aplică?

sobes.tech AI

Răspuns de la AI

Delegarea este un pattern de proiectare în care un obiect transferă executarea unei sarcini specifice unui alt obiect, numit delegat. Acest lucru permite împărțirea responsabilităților și creșterea flexibilității codului.

În iOS, delegarea este adesea folosită pentru transmiterea evenimentelor sau datelor între obiecte. De exemplu, UITableView utilizează un delegat pentru gestionarea selecției celulelor sau configurarea aspectului.

Exemplu în Swift:

protocol MyDelegate: AnyObject {
    func didFinishTask()
}

class Worker {
    weak var delegate: MyDelegate?

    func startTask() {
        // Execută sarcina
        // ...
        delegate?.didFinishTask()
    }
}

class Manager: MyDelegate {
    func didFinishTask() {
        print("Sarcina a fost finalizată")
    }
}

let worker = Worker()
let manager = Manager()
worker.delegate = manager
worker.startTask()

Aici, obiectul Worker delegă notificarea despre finalizarea sarcinii către obiectul Manager.