在具体使用前,首先来了解一个概念——依赖注入
1. 依赖注入
什么是依赖注入
依赖注入是由于类之间的依赖关系产生的,比如:
//产品依赖于操作工
public class Product{
private Worker mWorker;
}
这个时候想要产生mWorker的实例,通常有两种方法:
//直接new
mWorker = new Worker();
//通过参数传入
public Product(Worker worker){
mWokrer = worker;
}
以上就是典型的依赖注入,那么为什么要使用Dagger2来进行依赖注入呢?
2. 为什么要使用Dagger2注入
在回答这个问题前,我们首先分析以上两种产生mWorker实例的方式存在什么问题。
- 对于第一种方式,假设当业务扩充,此时
Worker的构造需要依赖于工具小刀Knife,Worker的构造函数发生变化,我们不得不对Product做出修改,这严重违反了开闭原则。 - 对于第二种方式,假设工厂
Factory依赖于Product,此时Product的位置就会与第一种的Worker一样。我们可以从迪米特原则(最少知识原则)——一个类应该对自己直接耦合(依赖)的类知道最少中找到这一问题产生的根本原因,显然,Factory并不关心Worker,然而Product却在构造时将对Wokrer的依赖带入到了Factory中
依赖关系.png
为了解决这种依赖关系对业务扩展时造成的糟糕体验,我们使用Dagger2来进行依赖注入
下一篇
)
,我们来对Dagger2的使用做初步了解。








网友评论