为什么依赖注入优于Angular 2中的实例化

时间:2017-09-13 17:55:28

标签: angular dependency-injection constructor angular2-services

我试图理解DI在Angular 2中是如何工作的。

简单来说,DI意味着注入我们的组件可能需要的服务,而不是在组件类中创建服务或实例化服务。

  

如果这是正确的,那么我觉得Angular 2 documentation是一个   有点误导,因为它使用'创建实例'的术语   同时解释'注射器提供者'

现在,从技术上讲,这归结为: - 使用构造函数而不是新

但是为什么,使用构造函数而不是new的优点是什么?在线是否有任何我可以关注的示例/资源......

1 个答案:

答案 0 :(得分:0)

我能想到的最好的优点是DI非常适合单元测试。想象一下,您想要测试一个类,它的功能会触发另一个您希望在不同场景中测试其功能的单元。在这种情况下,如果使用DI,则可以创建一个虚拟对象实例,该实例仅为该场景提供服务并注入该实例,以便可以隔离您正在测试的单元。如果您在测试类本身中创建了该实例,则无法实现此机​​制。