Я пытаюсь создать игрушечный проект для Android, используя Коин.
В моем проекте есть один репозиторий и два источника данных (удаленный / кеш).
Вот источники данных:
interface DataSource
class CacheDataSource: DataSource
class RemoteDataSource: DataSource
А вот и репозиторий:
interface MyRepository
class MyRepositoryImpl(
val cacheDataSource: DataSource,
val remoteDataSource: DataSource
): MyRepository
Итак ... Я пишу код приложения как:
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")) }
}
Но я не знаю, как мне это сделать?