【发布时间】:2021-02-18 14:40:38
【问题描述】:
我正在开发一个具有简洁架构原则的应用。我有一个domain 模块,它是一个Java/Kotlin 模块,它没有android 依赖项,还有一个domainImpl 模块,它是一个Android 模块,并且依赖于local、remote 和domain模块。这是domain 模块中的Repository 示例:
interface MovieRepository {
fun getMovie(id: Long): Flow<Movie>
}
下面的代码是它在domainImpl模块中的实现:
class MovieRepositoryImpl(
private val movieApi: MovieApi
) : MovieRepository {
override fun getMovie(id: Long): Flow<Movie> = flow {
emit(movieApi.getMovie(id))
}
}
在这种情况下一切正常。但现在我正在尝试为我的分页添加Android Paging 3。所以我必须向MovieRepository 接口添加一个方法,例如:
fun getMovies(): Flow<PagingData<Movie>>
但在此之前,我必须将 Paging 库添加到我的 domain 模块中,但不幸的是它是一个 Android 库,我找不到它的核心依赖项。那么我能做些什么呢?因此,我是否必须将我的 domain 模块更改为 android 模块?还是有其他解决方法?
【问题讨论】:
标签: android kotlin android-jetpack clean-architecture android-paging