将耦合(依赖)对象注入(转换)为解耦(独立)对象的过程称为“依赖注入”。
DI有四种类型:
1,构造函数注入
2.固定注入
3,基于接口的注入
4,服务定位器注入
构造函数用于接口通过参数化承包商公开的参数。
当对象创建其他类时,它通过承包商方法注入依赖项。
Getter和Setter注入通过使用默认的公共属性过程(如Gettter(get(){})和Setter(set(){}))来注入依赖项。Ť
Interface Injection与Getter and Setter DI类似,该Getter and Setter DI使用默认的getter和setter,但Interface Injection使用支持接口的一种显式getter和setter来设置接口属性。
服务定位器注入也称为依赖吸收。用于替换新的运算符。它通过直接调用方法(无需创建对象)来隐藏类依赖关系。
减少类耦合
提高代码可重用性
提高代码可维护性
改善应用程序测试
集中配置
依赖项注入的主要缺点是,如果需要解决的实例过多且依赖项过多,则将多个实例一起使用会变得非常困难。