Sobes.tech
Junior — Middle

Můžete vysvětlit koncept delegování v návrhových vzorech a jak se používá?

sobes.tech AI

Odpověď od AI

Delegace je návrhový vzor, při kterém jeden objekt předává vykonání určité úkolu jinému objektu, nazývanému delegát. To umožňuje rozdělení odpovědností a zvýšení flexibility kódu.

V iOS se delegace často používá k přenosu událostí nebo dat mezi objekty. Například UITableView používá delegáta k obsluze výběru buněk nebo nastavení vzhledu.

Příklad v Swift:

protocol MyDelegate: AnyObject {
    func didFinishTask()
}

class Worker {
    weak var delegate: MyDelegate?

    func startTask() {
        // Vykonání úkolu
        // ...
        delegate?.didFinishTask()
    }
}

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

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

Zde objekt Worker deleguje oznámení o dokončení úkolu objektu Manager.