Ответ
Да, Interactor может объединять данные из нескольких источников. Это одна из его ключевых задач в Clean Architecture.
Пример с RxJava:
class UserInteractor(
private val localRepo: UserLocalRepository,
private val remoteRepo: UserRemoteRepository
) {
fun getUserData(): Single<UserData> {
return Single.zip(
localRepo.getCachedUser(),
remoteRepo.fetchUser(),
{ cached, remote ->
// Merge logic
UserData(cached.id, remote.name, cached.lastSeen)
}
)
}
}
Важные моменты:
- Interactor должен обрабатывать ошибки (например, fallback на локальные данные)
- Логика объединения должна быть простой и вынесена в Interactor
- Источники данных должны быть независимы (репозитории)