Sobes.tech
Junior — Middle

El tudná magyarázni a delegálás fogalmát a tervezési mintákban, és hogyan alkalmazzák?

sobes.tech MI

Válasz az MI-től

A delegálás egy tervezési minta, amelyben egy objektum egy adott feladat végrehajtását egy másik objektumnak, a delegáltnak adja át. Ez lehetővé teszi a felelősségek megosztását és a kód rugalmasságának növelését.

Az iOS-ben a delegálás gyakran használatos események vagy adatok átadására objektumok között. Például, a UITableView egy delegáltat használ a cellák kiválasztásának vagy a megjelenés beállításának kezelésére.

Swift példában:

protocol MyDelegate: AnyObject {
    func didFinishTask()
}

class Worker {
    weak var delegate: MyDelegate?

    func startTask() {
        // Feladat végrehajtása
        // ...
        delegate?.didFinishTask()
    }
}

class Manager: MyDelegate {
    func didFinishTask() {
        print("Feladat befejezve")
    }
}

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

Itt a Worker objektum átadja a feladat befejezéséről szóló értesítést a Manager objektumnak.