DI 是依赖注入 (Dependancy Injection) 的简写, 它是 Angular 的重要特性之一. 依赖注入 (DI) 是一个经典的设计模式, 主要是用来处理组件如何获得依赖的问题; 它简化了 Angular 解析模块 / 组件之间依赖的过程.
依赖注入 (DI) 是用来创建对象及其依赖的其它对象的一种方式. 当依赖注入系统创建某个对象实例时, 会负责提供该对象所依赖的对象(称为该对象的依赖).
在依赖注入模式中, 应用组件无需关注所依赖对象的创建和初始化过程, 可以认为框架已初始化好了, 开发者只管调用即可. 依赖注入有利于应用程序中各模块之间的解耦, 使得代码更容易维护.
这种优势可能一开始体现不出来, 但随着项目复杂度的增加, 各模块, 组件, 第三方服务等相互调用更频繁时, 依赖注入的优点就体现出来了. 开发者可以专注于所依赖对象的消费, 无需关注这些依赖对象的产生过程, 这将大大提升开发效率.
使用依赖注入的好处
1, 松耦合和可重用性
减少组件依赖性可以增强组件的可重用性. 如果在不同的上下文中需要某个接口的不同实现, 或者只是同一实现的不同配置, 则可以将该组件配置为使用该实现. 无需更改代码.
2, 提高代码的可测试性
依赖注入也增加了组件的可测试性. 当依赖项可以注入组件时, 意味着可以注入这些依赖项的模拟实现. 模拟对象用于测试作为实际实现的替代, 并且可以配置模拟对象的行为.
3, 增强代码的可读性
依赖注入可将依赖项移动到组件的接口. 使得更容易看到组件中哪些具有依赖关系, 从而使代码更具可读性.
来源: http://www.css88.com/qa/angular-js/10645.html