我试图理解DI在Angular 2中是如何工作的。
简单来说,DI意味着注入我们的组件可能需要的服务,而不是在组件类中创建服务或实例化服务。
(如果这是正确的,那么我觉得Angular 2 documentation是一个 有点误导,因为它使用'创建实例'的术语 同时解释'注射器提供者')
现在,从技术上讲,这归结为: - 使用构造函数而不是新
但是为什么,使用构造函数而不是new的优点是什么?在线是否有任何我可以关注的示例/资源......
答案 0 :(得分:0)
我能想到的最好的优点是DI非常适合单元测试。想象一下,您想要测试一个类,它的功能会触发另一个您希望在不同场景中测试其功能的单元。在这种情况下,如果使用DI,则可以创建一个虚拟对象实例,该实例仅为该场景提供服务并注入该实例,以便可以隔离您正在测试的单元。如果您在测试类本身中创建了该实例,则无法实现此机制。