Может ли кто-нибудь объяснить следующий фрагмент кода:
class UserDetailsFragment: UserDetailsContract.View {
@Inject lateinit var accountHelper: AccountHelper
private lateinit var presenter: UserDetailsPresenter
@Inject
fun injected() {
presenter = UserDetailsPresenter(this, accountHelper)
}
Кажется, что AccountHelper предоставляется следующим модулем:
@Module
class AccountModule() {
@Provides
@AccountScope
internal fun provideAccountHelper(apiClient: ApiClient): AccountHelper {
return AccountHelper(apiClient)
}
Аннотирование конструктора с помощью@Inject добавляет его в граф зависимостей с областью, к которой аннотирован класс (здесь он не ограничен).Что делает аннотирование метода с помощью @Inject?
В provideAccountHelper AccountModule: на указанный apiClient предоставляется @Singleton.Если бы был другой ApiClient с такой же областью действия (@AccountScope), будет ли это использовать кинжал?Есть ли в приказе кинжал, обеспечивающий зависимости в зависимости от области видимости? Я думаю, это то, что я спрашиваю.
Спасибо.