Sobes.tech
Junior — Middle

Môžete vysvetliť koncept delegovania v návrhových vzorcoch a ako sa používa?

sobes.tech AI

Odpoveď od AI

Delegovanie je vzor návrhu, pri ktorom jeden objekt odovzdá vykonanie určitej úlohy inému objektu, nazývanému delegát. To umožňuje rozdelenie zodpovedností a zvýšenie flexibility kódu.

V iOS sa delegovanie často používa na prenos udalostí alebo údajov medzi objektmi. Napríklad, UITableView používa delegáta na spracovanie výberu buniek alebo nastavenie vzhľadu.

Príklad v Swift:

protocol MyDelegate: AnyObject {
    func didFinishTask()
}

class Worker {
    weak var delegate: MyDelegate?

    func startTask() {
        // Vykonanie úlohy
        // ...
        delegate?.didFinishTask()
    }
}

class Manager: MyDelegate {
    func didFinishTask() {
        print("Úloha dokončená")
    }
}

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

Tu, objekt Worker deleguje oznámenie o dokončení úlohy na objekt Manager.