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.