Intereting Posts
Почему моя установка RxJava блокирует мой поток пользовательского интерфейса? Работа с обратным вызовом BluetoothAdapter.startLeScan Производительность при использовании Pair в Kotlin для Android Ошибка: ошибка преобразования байт-кода в dex: Причина: com.android.dex.DexException: несколько файлов dex определяют Lorg / jetbrains / anko / collections / CollectionsKt; rx-java2 Schedulers.io () steel вызывает метод из mainThread Презентатор MVP неправильно введен Код привязки для Android Studio 3.0, не созданный студией Android Как создать пустой конструктор для класса данных в Kotlin Android Возможно ли иметь расширения функций на лямбдах? Основной метод Kotlin Android не вызывается Как получить текущую локальную дату и время в Котлин Почему Bundle in Intent теряется? Программировать триггерную кнопку HTML в Java добавление фрагмента в действие из фрагмента, который не работает в Pixel XL android версии 8.0.0 База данных номеров с использованием kotlin ojAlgo – проблема оптимизации с непрерывной логикой блока?

Требует ли Kotlin рамки DI?

В поисках необходимости Dependecy Injection (DI) мне стало ясно, что не все языки используют DI Framework.

Например, существует определенная статья о Ruby ( Ruby Talk about DI Frameworks ), в которой говорится о DI и о том, как Ruby не нуждается в DI Framework из-за гибкости и намерений языка.

Например, он утверждает, что вместо того, чтобы вводить что-то, мы могли бы просто добавить параметр по умолчанию, например:

class FooBar(val foo: FooInterface = Foo()) 

Таким образом, если бы нам нужен еще один экземпляр FooInterface мы просто FooBar экземпляр класса FooBar с чем-то другим.

Я думаю, что Kotlin обеспечивает такую ​​же гибкость, поэтому мой вопрос: действительно ли нам нужна DI Framework, когда мы вообще не используем Java вообще в проекте?

Решение о необходимости создания рамки DI не зависит от используемого вами языка . Kotlin очень похож на Java по своей структуре (например, классы как основной), т.е. имеет равные ограничения. Существуют определенные прецеденты, которые могут потребовать рамки DI, такие же, как в Java. Возможными кандидатами являются, вероятно, Spring, Guice и т. Д. Есть даже инструменты с поддержкой Kotlin, такие как Kodein , которые могут быть интересными.