У меня есть репозиторий, который выбирает некоторые данные из кэша или API в зависимости от доступности. Вот пример класса репозитория, который имеет метод для извлечения данных с нумерацией страниц
class Repository {
suspend fun getData(offset: Int, limit: Int): List<Model> {
val data = localRepo.getData(offset, limit)
?: networkRepo.getData(offset, limit).also {
localRepo.updateData(offset, limit)
}
return data
}
}
Некоторые из этих возвращаемых данных могут измениться когда-нибудь в будущем, например, Модель в этом списке может быть устаревшей, и мне нужно убери это. Я хотел бы реализовать способ связи между хранилищем и его потребителями для любых таких изменений (изменения в модели, удаление модели и т. Д. c). Я могу использовать вещательные каналы, но это нарушает правило единого источника правды. Если я использую поток и выдаю результаты, то я не знаю, как бороться с нумерацией страниц вместе с потоком