Kotlin是否需要DI框架?

寻找依赖注入(DI)的需要,我很清楚并不是所有的语言都使用DI框架。

例如,关于Ruby的一个特别的文章( 关于DI框架的Ruby Talk )讨论了DI,以及由于语言的灵活性和意图,Ruby如何不需要DI框架。

它举例说明,而不是注入一些东西,我们可以只添加一个默认参数,例如:

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

这样,如果我们需要FooInterface另一个实例,我们只需要用别的东西来实例化FooBar类。

我认为Kotlin提供了同样的灵活性,所以我的问题是,当我们在项目中完全不使用Java时,是否真的需要DI框架?

决定是否需要DI框架您使用的语言无关Kotlin在结构上(例如类作为主要单元) 与Java非常相似 ,即具有相同的限制。 有一些用例可能需要一个DI框架,和Java一样。 可能的候选人可能是Spring,Guice等。甚至有Kotlin支持的DI工具,如Kodein ,这可能是有趣的。