Привет Подскажите, пожалуйста, как мне один объект, например, D отдать в три места?
Делаю @Provides без синглтона для D, отдаю в A, B и C места. Туда должен уйти один объект, но если создаю еще раз A, B и С, то объект D должен в них уйти уже новый
Вернее, если создаю только объект A еще раз, то D должен быть один, но новый для A, B и C
Я не знаю, можно ли это распетлять одним только даггером, тут напрашивается что-то вроде абстрактной фабрики, которая сама внутри себя будет следить, когда и какие ресурсы она будет для А, В и С поставлять
Вернее, если создаю только объект A еще раз, то D должен быть один, но новый для A, B и C
Хотя если подумать ещё раз, то можно попробовать так: 1) D отметить скоупом компонента (локальный синглтон) 2) А, В и С поставляются без скоупа 3) если тебе нужен новый D - выкинь весь компонент
Вообще koin - это реализация service locator pattern т.е. он реализует инверсию контроля на основе сервис локатора - hilt, dagger уже другое, они реально делают инверсию контроля через внедрение зависимостей на основе аннотаций jsr-330. И вот, наверное, ответ на вопрос - нет кодогена => уменьшается время сборки, ну и если проект небольшой - то service locator, возможно, более предпочтительнее
Хотя если подумать ещё раз, то можно попробовать так: 1) D отметить скоупом компонента (локальный синглтон) 2) А, В и С поставляются без скоупа 3) если тебе нужен новый D - выкинь весь компонент
Спасибо, что откликнулся)) Не очень понял, как выкинуть?)
Чтобы было проще. Ситуация такая. Есть активити. Для нее идёт три презентера (это A, B и C). В каждый из них передаю D. И вот если создаю новую активити следует сделать новый D на все три презентера
Чтобы было проще. Ситуация такая. Есть активити. Для нее идёт три презентера (это A, B и C). В каждый из них передаю D. И вот если создаю новую активити следует сделать новый D на все три презентера
Слушай, а разве в mvp соотношения активити к презентеру должно быть не 1 к 1?
В активити есть ViewPager, а в него вложен ещё один ViewPager) Т.е. один презентер для активити, один для первого фрагмента с пейджером и ещё один для вложенного фрагмента в первый вью пейдежер))
Чтобы было проще. Ситуация такая. Есть активити. Для нее идёт три презентера (это A, B и C). В каждый из них передаю D. И вот если создаю новую активити следует сделать новый D на все три презентера
Просто делаете на каждую Активити новый компонент. И в рамках этого компонента делаете все 4 зависимости scoped