寻找依赖注入(DI)的需求,我很清楚并不是所有的语言都在使用DI框架。Kotlin是否需要DI框架?
例如,有关Ruby的这篇特定文章(Ruby Talk about DI Frameworks)讨论了DI以及Ruby如何因为语言的灵活性和意图而不需要DI框架。
它规定为例子,而不是注入的东西,我们可以只添加默认的参数,例如:
class FooBar(val foo: FooInterface = Foo())
这样,如果我们需要的FooInterface
另一个实例中,我们只想实例化FooBar
类别的东西。
我认为Kotlin提供了同样的灵活性,所以我的问题是,当我们在项目中完全不使用Java时,是否真的需要DI框架?
你是什么意思“用别的东西去体现...”?你的意思是手动吗? – ThisIsNoZaku
我知道还有其他的方法,像mockito,但是例如,如果你需要模拟Foo()类,你可以简单地做一些像'FooBar(MockFoo())' – rlino
语言选择和依赖注入是完全正交的概念。我不同意这篇文章的大部分内容,但即使他同意这主要是应用程序的大小问题,并且随着JavaConfig和Boot Spring已大幅度向基于代码的配置方向发展(必要时)。是否使用任何类型的框架最终都是需要跟踪的事情的数量。 (请注意,您的示例几乎完全忽略了DI的要点,这是'Foo'通常会发生变化的原因。) – chrylis