Dagger2使用简析——序章
2019-05-20 本文已影响18人
白与兰与白兰地
在具体使用前,首先来了解一个概念——依赖注入
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的使用做初步了解。