Dagger2使用简析——序章

作者: 白与兰与白兰地 | 来源:发表于2019-05-20 19:22 被阅读18次

在具体使用前,首先来了解一个概念——依赖注入

1. 依赖注入

什么是依赖注入
依赖注入是由于类之间的依赖关系产生的,比如:

//产品依赖于操作工
public class Product{
  private Worker mWorker;
}

这个时候想要产生mWorker的实例,通常有两种方法:

//直接new
mWorker = new Worker();

//通过参数传入
public  Product(Worker worker){
  mWokrer = worker;
}

以上就是典型的依赖注入,那么为什么要使用Dagger2来进行依赖注入呢?

2. 为什么要使用Dagger2注入

在回答这个问题前,我们首先分析以上两种产生mWorker实例的方式存在什么问题。

  • 对于第一种方式,假设当业务扩充,此时Worker的构造需要依赖于工具小刀KnifeWorker的构造函数发生变化,我们不得不对Product做出修改,这严重违反了开闭原则
  • 对于第二种方式,假设工厂Factory依赖于Product,此时Product的位置就会与第一种的Worker一样。我们可以从迪米特原则(最少知识原则)——一个类应该对自己直接耦合(依赖)的类知道最少中找到这一问题产生的根本原因,显然,Factory并不关心Worker,然而Product却在构造时将对Wokrer的依赖带入到了Factory
    依赖关系.png

为了解决这种依赖关系对业务扩展时造成的糟糕体验,我们使用Dagger2来进行依赖注入

下一篇
)
,我们来对Dagger2的使用做初步了解。

相关文章

网友评论

    本文标题:Dagger2使用简析——序章

    本文链接:https://www.haomeiwen.com/subject/jrbzaqtx.html