关于aurelia:除了帮助测试之外,还有其他理由使用依赖注入吗?

Is there any other reason to use dependency injection other than to help testing?

本问题已经有最佳答案,请猛点这里访问。

我们刚接了奥雷利亚。首先,这很好。到目前为止我喜欢用它。它似乎是非常模块化的,我喜欢。但我想知道他们为什么使用DI。使用DI有什么好处?我知道这似乎使单人使用更容易,但还有其他原因吗?

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

1
myObj = new myObj();

你这样做:

1
2
3
4
5
6
@autoInject
export class myClass {
     constructor(myObj) {
          this.variable = myObj;
     }
}

所以,我真的找不到人们使用DI的好处。还有什么我不知道的原因吗?


正如评论中所说,这是一个非常广泛的问题。但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是一种模式,框架或库控制自定义代码,而不是使用框架或库控制自定义代码。阅读文章了解更多信息。希望有帮助。