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