Sobes.tech
Junior — Middle

Kas saaksite selgitada delegeerimise kontseptsiooni disainimustrites ja kuidas seda rakendatakse?

sobes.tech AI

Vastus AI-lt

Delegeerimine on disainimuster, kus üks objekt edastab teise objekti, mida nimetatakse delegeerijaks, teatud ülesande täitmise. See võimaldab jagada vastutust ja suurendada koodi paindlikkust.

iOS-is kasutatakse delegeerimist sageli sündmuste või andmete edastamiseks objektide vahel. Näiteks kasutab UITableView delegeerijat, et hallata rakkude valikut või välimuse seadistamist.

Näide Swiftis:

protocol MyDelegate: AnyObject {
    func didFinishTask()
}

class Worker {
    weak var delegate: MyDelegate?

    func startTask() {
        // Teostame ülesande
        // ...
        delegate?.didFinishTask()
    }
}

class Manager: MyDelegate {
    func didFinishTask() {
        print("Ülesanne lõpetatud")
    }
}

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

Siin delegeerib Worker objekt teate ülesande lõpetamisest objektile Manager.