Dagger2学习笔记1(基础概念学习)

什么是依赖:

依赖是开发过程中最常见的,举个简单的例子

public class A {
  public A(){
      B b = new B();
      ....
  }
}

public class B {
  
}

B 对象是在 A 中进行实例化, A 对象就依赖于 B,如果当 B 的构造方法发生改变时, 我们不仅需要修改一处, 还需要把所有引用 B 对象实例化的地方全部重新修改一次, 不利于代码的维护, 也不符合我们的编程思想, 想要让代码独立性更高便需要使用依赖注入.

什么是依赖注入

如上文所说, 为了使代码更加独立, 我们不采用在一个类中直接创建另一个类的方式, 而是我们需要这个类时直接把这个类的对象拿过来使用即可, 减少代码之间的依赖性.
其实我们在编写代码的时候已经使用过一些简单的依赖注入:
1.通过构造方法进行依赖

public class A {
    public A(B b){
        b.print();
    }
}
  1. 通过 set方法
public void setB(B b){
    this.b = b;
}
  1. 通过实现接口的方式
/**
 *定义接口
 */
interface UserInject{
    void inject(User user);
}

/**
 * 实现接口类
 */
class UserImpl extends  UserInject{

    @Override
    public void inject(User user) {
        user.....
    }
}
  1. 通过注解, 如Dagger2依赖注入框架
class UserImpl{
    @Inject
    User user;
}

以上是 学习 Dagger2 之前的基础概念, 下一篇文章中我们将开始介绍如何使用 Dagger2.
Dagger2学习笔记2(学习Dagger2的简单使用)
Dagger2学习笔记3(各个注解学习)
Dagger2学习笔记4(@Singleton 与@ Scope 实现全局单例与作用域单例)

你可能感兴趣的:(Dagger2学习笔记1(基础概念学习))