依赖注入出现的目的:实现class代码可以解耦。
依赖注入是重要的程序设计模式。 Angular 有自己的依赖注入框架。
什么是依赖注入:它是一种编程模式,可以让类从外部源中获得它的依赖,而不必亲自创建它们。
class没有解耦前是这样的:
class Person的实现需要使用到Adderss,Id里面的实例。很明显,这样的写法Person Class的代码没办法跟Address,Id Class解耦。Address,Id Class 如果变了的话,就会出现class Person也需要跟着变化。
我们想要达到解耦的效果是这样的:
person不需要关心Address,Id,只需要在constructor里面申明即可。
那谁来帮我们解决实例的生成呢?
假设我们现在有个main函数,它就是帮我们解决好各个class直接创建实例时的依赖关系:
这样就实现了person,adderss,id之间的解耦。
但是问题来了,如果class很多的情况下,main将会非常难维护。这就需要有一个依赖注入的框架来管理实现。
angular提供了依赖注入框架来帮我们做这件事情。只需要这样使用:
person Class 也可以这样写了:
实际使用angular依赖注入更简单:
1.在module里面的providers里面注册injector。
2.使用的时候注入即可:
3.injector 有useValue,useClass,useFactory等。
4.angular依赖注入框架的基本实现原理:
https://www.cnblogs.com/etoah/p/5460441.html