【问题标题】:Is there any other reason to use dependency injection other than to help testing? [duplicate]除了帮助测试之外,还有其他理由使用依赖注入吗? [复制]
【发布时间】:2016-11-09 02:04:28
【问题描述】:

我们刚刚接了 Aurelia。首先,它很棒。到目前为止我喜欢使用它。它似乎是非常模块化的,我喜欢。但我开始思考他们为什么使用 DI。使用 DI 有什么好处?我知道这似乎使单例使用更容易,但还有其他原因吗?

据我了解(我可能是错的),而不是这样做:

myObj = new myObj();

你这样做:

@autoInject
export class myClass {
     constructor(myObj) {
          this.variable = myObj;
     }
}

所以,我似乎真的找不到人们普遍使用 DI 的优势。还有其他我不知道的原因吗?

【问题讨论】:

  • 另见programmers.stackexchange.com/questions/19203/…。这个问题在目前的状态下属于“太宽泛”的类别,没有好的答案。原因是“架构优势”,这并不能解释很多,不是吗?这并不特别适用于 Aurelia,而是适用于任何其他执行 DI/IoC 的框架。

标签: dependency-injection aurelia


【解决方案1】:

正如 cmets 中所述,这是一个非常广泛的问题。但是 Jeremy Danyow 提供了一些很好的答案:

https://www.danyow.net/inversion-of-control-with-aurelia-part-1/ https://www.danyow.net/inversion-of-control-with-aurelia-part-2/

在高层次上,Aurelia 采用 IoC 范式 - 控制反转 - 其中 DI 是反转控制的机制。 IoC 是一种框架或库控制自定义代码的模式,而不是使用框架或库的自定义代码。阅读文章了解更多。希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-08
    • 2023-02-09
    • 1970-01-01
    • 2019-10-14
    • 1970-01-01
    • 2015-03-17
    • 1970-01-01
    相关资源
    最近更新 更多