Android 具有嵌套范围或子组件概念的Koin 2.0
有没有办法在Koin上实现Dagger的小型企业概念 我想做的事情是使用父作用域的实例 app_modules.ktAndroid 具有嵌套范围或子组件概念的Koin 2.0,android,dependency-injection,koin,koin-scope,Android,Dependency Injection,Koin,Koin Scope,有没有办法在Koin上实现Dagger的小型企业概念 我想做的事情是使用父作用域的实例 app_modules.kt val favoriteModule = module { scope(named<FavoriteFragment>()) { scoped { GetFavoriteMovies(get()) } scoped { FavoriteVMFactory(get(), get()) } // This need 'MovieEn
val favoriteModule = module {
scope(named<FavoriteFragment>()) {
scoped { GetFavoriteMovies(get()) }
scoped { FavoriteVMFactory(get(), get()) } // This need 'MovieEntityMovieMapper'
}
}
val popularModule = module {
scope(named<PopularFragment>()) {
scoped { GetPopularMovies(get()) }
scoped { PopularVMFactory(get(), get()) } // This need 'MovieEntityMovieMapper'
}
}
val searchModule = module {
scope(named<SearchFragment>()) {
scoped { SearchMovies(get()) }
scoped { SearchVMFactory(get(), get()) } // This need 'MovieEntityMovieMapper'
}
}
val mainModule = module {
scope(named<MainActivity>()) {
scoped { MovieEntityMovieMapper() }
// this ImageLoader also injected by Fragments
scoped<ImageLoader> { (activity: Activity) -> GlideImageLoader(activity) }
}
}
val-favoriteModule=模块{
作用域(命名为(){
作用域{GetFavoriteMovies(get())}
作用域为{FavoriteVMFactory(get(),get())}//这需要'MovieEntityMovieMapper'
}
}
val popularModule=模块{
作用域(命名为(){
作用域{GetPopularMovies(get())}
作用域为{PopularVMFactory(get(),get())}//需要“MovieEntityMovieMapper”
}
}
val searchModule=模块{
作用域(命名为(){
作用域{SearchMovies(get())}
作用域为{SearchVMFactory(get(),get())}//这需要'MovieEntityMovieMapper'
}
}
val main模块=模块{
作用域(命名为(){
作用域为{MovieEntityMovieMapper()}
//这个ImageLoader也由片段注入
作用域{(活动:活动)->GlideImageLoader(活动)}
}
}
使用Dagger,这可以通过子组件或组件依赖项来完成
但是在Koin(特别是2.0),我找不到路
有人回答说使用
GlobalContext.get().koin.getScope(“父”).get()
但我不认为这不是一种干净的方法和依赖注入。你可以尝试一下,它的灵感来自Koin,但有子图,可以像Dagger的子组件一样使用。Winter已经在一些大型应用程序的生产中使用了好几年,安装量达数百万次。我希望可以在这里发布一个示例:
免责声明:我认识作者,自从他的库发布以来,我一直在使用它。到目前为止,根据我的经验,它是稳定的。你可以尝试它,它的灵感来自Koin,但它有子图,可以像Dagger的子组件一样使用。Winter已经在一些大型应用程序的生产中使用了好几年,安装量达数百万次。我希望可以在这里发布一个示例:
免责声明:我认识作者,自从他的库发布以来,我一直在使用它。根据我的经验,到目前为止,它是稳定的