我正在尝试使用 Koin 制作一个 Android 玩具项目。
我的项目有一个存储库和两个数据源(远程/缓存)。
以下是数据源:
interface DataSource
class CacheDataSource: DataSource
class RemoteDataSource: DataSource
这是存储库:
interface MyRepository
class MyRepositoryImpl(
val cacheDataSource: DataSource,
val remoteDataSource: DataSource
): MyRepository
所以...我正在编写 appModule 代码,例如:
val appModule = module {
single<DataSource>(StringQualifier("cache")) { CacheDataSource() }
single<DataSource>(StringQualifier("remote")) { RemoteDataSource() }
single<MyRepository> { MyRepositoryImpl() as MyRepository by inject("???") }
}
和...
我也试过下面的代码......:
val appModule = module {
single<DataSource>(StringQualifier("cache")) { CacheDataSource() }
single<DataSource>(StringQualifier("remote")) { RemoteDataSource() }
single<MyRepository> { MyRepositoryImpl(get<MoviesDataSource>(name = "cache"), get<MoviesDataSource>(name = "remote")) }
}
但我不知道我该怎么做?