Можешь ли ты назвать основные способы реализации паттерна наблюдатель?
Answer from AI
sobes.tech AI
Основные способы реализации паттерна наблюдатель (Observer) в iOS:
-
NotificationCenter — системный механизм рассылки уведомлений. Позволяет объектам подписываться на уведомления с определённым именем и получать их, когда кто-то публикует такое уведомление.
-
KVO (Key-Value Observing) — механизм наблюдения за изменениями свойств объектов. Позволяет автоматически получать уведомления при изменении значения свойства.
-
Delegate (Делегаты) — паттерн, где объект имеет ссылку на делегата и вызывает методы делегата при наступлении событий.
-
Closure/Callback — передача замыканий (функций) для вызова при изменении состояния.
-
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)