СП
Size: a a a
СП
A
СП
V

Я
V
A
interface EventCollector {
fun newEvent(event: Event)
}
interface EventEmitter {
fun getEvents(): Flow<Event>
}
Делаю посредника:@Singleton
class EventCollectorEmitter @Inject constructor() : EventCollector, EventEmitter {
override fun newEvent(event: Event) {
...
}
override fun getEvents(): Flow<Event> {
...
}
}
И инжекчу его в ресивер как Collector, а в пользователей как Emitter
В ресивере соответственно вызываю collector.newEvent(event), а в клиентах обзервлю флоу ивентов, в итоге они друг о друге вообще не догадываютсяЯ
ПЧ
ПЧ
СП
V
Б

Б
V
Б
A
ОА
Б
Б