Sobes.tech
Junior — Middle

Можете ли да објасните концепт делегирања у шаблонима дизајна и како се примењује?

sobes.tech АИ

Одговор од АИ

Delegacija je obrazac dizajna u kojem jedan objekat prenosi izvršenje određenog zadatka drugom objektu, nazvanom delegat. Ovo omogućava deljenje odgovornosti i povećava fleksibilnost koda.

U iOS-u, delegacija se često koristi za prenos događaja ili podataka između objekata. Na primer, UITableView koristi delegata za obradu izbora ćelija ili podešavanje izgleda.

Primer u Swift-u:

protocol MyDelegate: AnyObject {
    func didFinishTask()
}

class Worker {
    weak var delegate: MyDelegate?

    func startTask() {
        // Izvršavanje zadatka
        // ...
        delegate?.didFinishTask()
    }
}

class Manager: MyDelegate {
    func didFinishTask() {
        print("Zadatak je završen")
    }
}

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

Ovde, objekat Worker delegira obaveštenje o završetku zadatka objektu Manager.