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是一种模式,框架或库控制自定义代码,而不是使用框架或库控制自定义代码。阅读文章了解更多信息。希望有帮助。