依赖注入,是为了更好地“依赖反转原则”:依赖关系应该“依赖于接口,不依赖于实现”。
所以依赖者应该使用被依赖者的接口。
注入的是具体的类,把被依赖者的构造交给容器,把决定构造什么具体类的实例的工作交给配置文件。
配置文件同时也指定类之间的依赖关系。
如果被依赖者和依赖者之间是合成关系,则在构造依赖者的同时也会构造被依赖者。
依赖注入的方式分为:
1)属性注入
2)构造函数注入
3)接口注入
一般使用属性注入。