Sobes.tech
Junior — Middle

Ar galite paaiškinti delegavimo koncepciją dizaino šablonuose ir kaip ji taikoma?

sobes.tech AI

Atsakymas iš AI

Delegavimas yra projektavimo šablonas, kuriame vienas objektas perduoda tam tikro užduoties vykdymą kitam objektui, vadinamam delegatu. Tai leidžia pasidalinti atsakomybes ir padidinti kodo lankstumą.

iOS, delegavimas dažnai naudojamas įvykių ar duomenų perdavimui tarp objektų. Pavyzdžiui, UITableView naudoja delegatą, kad tvarkytų langelių pasirinkimą ar išvaizdos nustatymą.

Swift pavyzdys:

protocol MyDelegate: AnyObject {
    func didFinishTask()
}

class Worker {
    weak var delegate: MyDelegate?

    func startTask() {
        // Atlikti užduotį
        // ...
        delegate?.didFinishTask()
    }
}

class Manager: MyDelegate {
    func didFinishTask() {
        print("Užduotis baigta")
    }
}

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

Čia, Worker objektas delegato pagalba praneša apie užduoties pabaigą objektui Manager.