Sobes.tech
Junior — Middle

Можете ли да обясните концепцията за делегиране в патърните за дизайн и как се прилага?

sobes.tech AI

Отговор от AI

Делегирането е шаблон за дизайн, при който един обект прехвърля изпълнението на конкретна задача на друг обект, наречен делегат. Това позволява разделяне на отговорностите и увеличаване на гъвкавостта на кода.

В iOS делегирането често се използва за предаване на събития или данни между обекти. Например, UITableView използва делегат за обработка на избора на клетки или настройка на външния вид.

Пример на Swift:

protocol MyDelegate: AnyObject {
    func didFinishTask()
}

class Worker {
    weak var delegate: MyDelegate?

    func startTask() {
        // Изпълняваме задачата
        // ...
        delegate?.didFinishTask()
    }
}

class Manager: MyDelegate {
    func didFinishTask() {
        print("Задачата е завършена")
    }
}

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

Тук обектът Worker делегира уведомлението за завършване на задачата на обекта Manager.