Центр уведомлений, или NotificationCenter
, это механизм в Foundation, реализующий паттерн "Наблюдатель" (Observer). Он позволяет объектам широковещательно рассылать уведомления другим объектам, которые подписаны на них.
Ключевые компоненты:
- Publisher (Поставщик): Объект, который публикует уведомление.
- Observer (Наблюдатель): Объект, который подписывается на уведомление и реагирует на него.
- Notification (Уведомление): Объект, представляющий само событие. Содержит имя уведомления, отправителя и опциональный словарь пользовательской информации.
Преимущества:
- Слабая связанность между объектами.
- Удобство для рассылки событий многим подписчикам.
Недостатки:
- Сложность отладки из-за косвенного взаимодействия.
- Потенциальные проблемы с управлением жизненным циклом наблюдателей, если они не удаляются правильно.
Пример публикации и подписки:
swift
Центр уведомлений, или NotificationCenter
, это механизм в Foundation, реализующий паттерн "Наблюдатель" (Observer). Он позволяет объектам широковещательно рассылать уведомления другим объектам, которые подписаны на них.
Ключевые компоненты:
- Publisher (Поставщик): Объект, который публикует уведомление.
- Observer (Наблюдатель): Объект, который подписывается на уведомление и реагирует на него.
- Notification (Уведомление): Объект, представляющий само событие. Содержит имя уведомления, отправителя и опциональный словарь пользовательской информации.
Преимущества:
- Слабая связанность между объектами.
- Удобство для рассылки событий многим подписчикам.
Недостатки:
- Сложность отладки из-за косвенного взаимодействия.
- Потенциальные проблемы с управлением жизненным циклом наблюдателей, если они не удаляются правильно.
Пример публикации и подписки:
swift