什么是依赖:
依赖是开发过程中最常见的,举个简单的例子
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();
}
}
- 通过 set方法
public void setB(B b){
this.b = b;
}
- 通过实现接口的方式
/**
*定义接口
*/
interface UserInject{
void inject(User user);
}
/**
* 实现接口类
*/
class UserImpl extends UserInject{
@Override
public void inject(User user) {
user.....
}
}
- 通过注解, 如Dagger2依赖注入框架
class UserImpl{
@Inject
User user;
}
以上是 学习 Dagger2 之前的基础概念, 下一篇文章中我们将开始介绍如何使用 Dagger2.
Dagger2学习笔记2(学习Dagger2的简单使用)
Dagger2学习笔记3(各个注解学习)
Dagger2学习笔记4(@Singleton 与@ Scope 实现全局单例与作用域单例)
网友评论