我们刚拿起Aurelia。首先,它很棒。我喜欢到目前为止使用它。它看起来非常模块化,我喜欢它。但我想到为什么他们使用DI。使用DI的优势是什么?我知道它似乎使单身人士的使用更容易,但还有其他原因吗?
根据我的理解(我可能是错的),而不是这样做:
myObj = new myObj();
你这样做:
@autoInject
export class myClass {
constructor(myObj) {
this.variable = myObj;
}
}
所以,我似乎无法找到人们为什么一般使用DI的优势。还有其他我不了解的原因吗?
答案 0 :(得分:0)
正如评论中所述,这是一个非常广泛的问题。但是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是一种模式,其中框架或库控制自定义代码,而不是使用框架或库的自定义代码。阅读文章了解更多信息。希望有所帮助。