Size: a a a

2020 July 10

RI

Ruslan Ibragimov in Kotlin JVM
Варианты
Анонимный опрос
23%
1 === 2 // true
23%
1 === 2 // false
23%
Configurable with @Singleton/.singleton()
30%
Show results
Проголосовало: 30
источник

AE

Alexandr Emelyanov in Kotlin JVM
Ruslan Ibragimov
Есть такой код, вы регистрируете service в DI фреймворке (например так: `bind<Service, DefaultService>()`), инжектите сервис как провайдер (непонятно зачем, но допустим чтобы его создавать по необходимости во время жизни приложения):

class Controller(
   private val service: Provider<Service>
) {
   fun work() {
       service.get() // 1
       service.get() // 2
   }
}


по вашему скромному мнению:
Вопрос как то совсем не понятен
источник

АО

Алексей Овсянников... in Kotlin JVM
Alexandr Emelyanov
Вопрос как то совсем не понятен
Вопрос прост - есть сервис, вы его получаете через DI, что из вариантов верно
источник

АО

Алексей Овсянников... in Kotlin JVM
Ruslan Ibragimov
Варианты
Анонимный опрос
23%
1 === 2 // true
23%
1 === 2 // false
23%
Configurable with @Singleton/.singleton()
30%
Show results
Проголосовало: 30
Лучше Quiz
источник

AE

Alexandr Emelyanov in Kotlin JVM
Алексей Овсянников
Вопрос прост - есть сервис, вы его получаете через DI, что из вариантов верно
И два одинаковых варианта service.get()
источник

АО

Алексей Овсянников... in Kotlin JVM
Alexandr Emelyanov
И два одинаковых варианта service.get()
Что там по итогу дергается никто не знает же, если уж так говорить
источник

АО

Алексей Овсянников... in Kotlin JVM
Другой вопрос, что речь о сервисе, а сервисы обычно создаются единственный раз
источник

AE

Alexandr Emelyanov in Kotlin JVM
Алексей Овсянников
Что там по итогу дергается никто не знает же, если уж так говорить
В смысле никто не знает? Какая реализация сервиса?
источник

AE

Alexandr Emelyanov in Kotlin JVM
Алексей Овсянников
Другой вопрос, что речь о сервисе, а сервисы обычно создаются единственный раз
Не всегда
источник

АО

Алексей Овсянников... in Kotlin JVM
Пардон, не сразу понял
источник

A

Aleksandr in Kotlin JVM
Alexandr Emelyanov
В смысле никто не знает? Какая реализация сервиса?
Ага, тут вообще не совсем ясно, какое значение он возвращает
источник

AE

Alexandr Emelyanov in Kotlin JVM
Aleksandr
Ага, тут вообще не совсем ясно, какое значение он возвращает
А зачем знать реализацию сервиса?
источник

A

Aleksandr in Kotlin JVM
Alexandr Emelyanov
А зачем знать реализацию сервиса?
Какое значение он возвращает это не реализация, а сигнатура
источник

AE

Alexandr Emelyanov in Kotlin JVM
Aleksandr
Какое значение он возвращает это не реализация, а сигнатура
Так есть же
источник

AE

Alexandr Emelyanov in Kotlin JVM
val service: Provider<Service> ожидаемо будет тип Service
источник

AL

Anton Lakotka in Kotlin JVM
Ruslan Ibragimov
Варианты
Анонимный опрос
23%
1 === 2 // true
23%
1 === 2 // false
23%
Configurable with @Singleton/.singleton()
30%
Show results
Проголосовало: 30
зависит от контракта Provider.  в общем случаее стоит ожидать 1 === 2 // false
источник

AE

Alexandr Emelyanov in Kotlin JVM
А, понял, разные инстансы, да
источник

AE

Alexandr Emelyanov in Kotlin JVM
Для первого случая нужно контекст инжектировать, в котором можно попросить бин
источник

RI

Ruslan Ibragimov in Kotlin JVM
Да, тут вопрос в том как DI библиотека предоставляет вам провайдер, как что-то что закеширует результат get() или нет
источник

i

i_vovolk in Kotlin JVM
если рассуждать по аналогии с тем, что я видел в DI на php, например, то там можно сконфигурировать поведение контейнера по отношению к определенному ресурсу: чтобы он при каждом обращении отдавал новый объект или чтобы кешировал и отдавал всегда один.
источник