Я занимаюсь рефакторингом нашей кодовой базы. Сейчас у нас есть одноэлементный репозиторий, который выполняет сетевые запросы и управляет связью операторов с RxJava и Kotlin Coroutines.
Однако этот репозиторий внедряется в несколько моделей представления и становится труднее поддерживать.
Я хотел бы абстрагировать нашу кодовую базу и интегрировать некоторые варианты использования. Насколько я знаю, по общему мнению, в useCase используется один сетевой запрос, поэтому я не уверен в цепочке сетевых запросов.
Мне нужно объединить несколько сетевых запросов, используя Observable.zip и RxJava Subjects.
Будет ли следующий поток правильным?
Viewmodel вызывает useCase, который создает сетевой запрос (из репозитория), обрабатывает этот сетевой запрос, создает LiveData и перенаправляет эти LiveData в ViewModel, а также обновляет тему из репозитория , чтобы репозиторий мог выдавать некоторые данные после завершения всех сетевых запросов?
Тогда наш репозиторий остается похожим на наш текущий подход с меньшим количеством кода и будет отвечать только за цепочку нескольких сетевых запросов.
Надеюсь, я был достаточно ясен. Я исследовал несколько примеров MVVM, но они казались непрактичными для реальных приложений с сложной сетевой логикой .