Sobes.tech
Junior — Middle

Czy możesz wyjaśnić koncepcję delegowania w wzorcach projektowych i jak jest ona stosowana?

sobes.tech AI

Odpowiedź od AI

Delegowanie to wzorzec projektowy, w którym jeden obiekt przekazuje wykonanie określonego zadania innemu obiektowi, nazywanemu delegatem. Pozwala to na podział odpowiedzialności i zwiększenie elastyczności kodu.

W iOS delegowanie jest często używane do przekazywania zdarzeń lub danych między obiektami. Na przykład, UITableView używa delegata do obsługi wyboru komórek lub konfiguracji wyglądu.

Przykład w Swift:

protocol MyDelegate: AnyObject {
    func didFinishTask()
}

class Worker {
    weak var delegate: MyDelegate?

    func startTask() {
        // Wykonaj zadanie
        // ...
        delegate?.didFinishTask()
    }
}

class Manager: MyDelegate {
    func didFinishTask() {
        print("Zadanie zakończone")
    }
}

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

Tutaj obiekt Worker deleguje powiadomienie o zakończeniu zadania obiektowi Manager.