Ответ
Publisher/Subscriber (Pub/Sub) — это шаблон проектирования, где объекты (подписчики) получают уведомления об изменениях от другого объекта (издателя) без явной зависимости между ними.
Ключевые моменты:
- Издатель (Publisher) управляет списком подписчиков (Subscribers).
- Подписчики регистрируются у издателя для получения событий.
- При изменении состояния издатель уведомляет всех подписчиков.
Пример в Kotlin:
interface Subscriber {
fun update(message: String)
}
class Publisher {
private val subscribers = mutableListOf<Subscriber>()
fun subscribe(subscriber: Subscriber) {
subscribers.add(subscriber)
}
fun publish(message: String) {
subscribers.forEach { it.update(message) }
}
}
Использование:
- EventBus, RxJava, LiveData в Android.
- Уменьшает связность компонентов.