Comments 5
Так Кодеин тоже SL
val kodein = Kodein {
bind<Dice>() with provider { RandomDice(0, 5) }
bind<DataSource>() with singleton { SqliteDS.open("path/to/file") }
}
class Controller(private kodein: Kodein) {
private val ds: DataSource by kodein.instance()
}
Для мелких проектов сервислокаторы может и ок, но потом всё становится хуже
0
Я тоже считаю, что это не DI фреймворк. Зависимости явно достаются из сервис локатора.
Да и Jake Wharton иного мнения: https://www.reddit.com/r/androiddev/comments/75g2fm/opinions_on_kodein/do61qrq/
0
А чем сервис локаторы становятся хуже с ростом проекта. В окружающей жизни чем больше город, тем сервис локаторы все больше и изощреннее. И наоборот DI сходят на нет
0
Dagger тоже ведёт себя как ServiceLocator в Activity. Но слышал, что планируют дать доступ к её конструктору.
А по поводу кодеина, просто в конструктор нужно сами зависимости передавать а не объект кодеина. Ни кто ведь дагеровский компонент в конструктор презентера не передаёт же.
А по поводу кодеина, просто в конструктор нужно сами зависимости передавать а не объект кодеина. Ни кто ведь дагеровский компонент в конструктор презентера не передаёт же.
0
Sign up to leave a comment.
Не Dagger'ом едины