Sobes.tech
Back to questions
Junior — Middle
72

Можешь ли ты назвать основные способы реализации паттерна наблюдатель?

Answer from AI

sobes.tech AI

Основные способы реализации паттерна наблюдатель (Observer) в iOS:

  1. NotificationCenter — системный механизм рассылки уведомлений. Позволяет объектам подписываться на уведомления с определённым именем и получать их, когда кто-то публикует такое уведомление.

  2. KVO (Key-Value Observing) — механизм наблюдения за изменениями свойств объектов. Позволяет автоматически получать уведомления при изменении значения свойства.

  3. Delegate (Делегаты) — паттерн, где объект имеет ссылку на делегата и вызывает методы делегата при наступлении событий.

  4. Closure/Callback — передача замыканий (функций) для вызова при изменении состояния.

  5. Reactive frameworks (например, RxSwift) — используют реактивное программирование для подписки и обработки событий.

Пример с NotificationCenter:

NotificationCenter.default.addObserver(self, selector: #selector(handleNotification), name: .myNotification, object: nil)

@objc func handleNotification(_ notification: Notification) {
    print("Notification received")
}

NotificationCenter.default.post(name: .myNotification, object: nil)