angular中,依赖注入的唯一方法就是在构造函数中。
依赖注入:Dependency Injection,简称DI
控制反转:IOC
DI与IOC是angular依赖的一体两面,IOC把代码的控制权交给外部,运用IOC思想的框架叫IOC容器,angular就是一个IOC容器。
要达到控制反转的目的,就需要使用依赖注入。
下面就是依赖注入的使用:
providers中表示需要依赖注入的类,对象中的provide为一个token,useClass为具体要实例化的类,当要使用别的类时,就改变useClass即可,也就是说,该组件若要被其他地方重用,就算改需求的话,也只需要改useClass,其他地方的代码不用动。这样就实现了ProductComponent组件与服务ProductService之间的松耦合。
依赖注入的好处:
1.解耦合,上面已经提过。
2.便于测试。
若需要开发一个登陆功能,登陆模块已经写好,现在由别人负责的登陆身份验证的服务器功能还没有开发完毕,那登陆功能的身份验证是不是就没法测试了呢?肯定不是。
我们只需要写一个服务MockLoginService,再依赖注入到登陆组件即可。
等别人把验证功能开发好之后,用RealLoginService替换即可,替换就是改useClass即可,其他不用动。