什么是依賴:
依賴是開發(fā)過程中最常見的,舉個簡單的例子
public class A {
public A(){
B b = new B();
....
}
}
public class B {
}
B 對象是在 A 中進行實例化, A 對象就依賴于 B,如果當 B 的構造方法發(fā)生改變時, 我們不僅需要修改一處, 還需要把所有引用 B 對象實例化的地方全部重新修改一次, 不利于代碼的維護, 也不符合我們的編程思想, 想要讓代碼獨立性更高便需要使用依賴注入.
什么是依賴注入
如上文所說, 為了使代碼更加獨立, 我們不采用在一個類中直接創(chuàng)建另一個類的方式, 而是我們需要這個類時直接把這個類的對象拿過來使用即可, 減少代碼之間的依賴性.
其實我們在編寫代碼的時候已經(jīng)使用過一些簡單的依賴注入:
1.通過構造方法進行依賴
public class A {
public A(B b){
b.print();
}
}
- 通過 set方法
public void setB(B b){
this.b = b;
}
- 通過實現(xiàn)接口的方式
/**
*定義接口
*/
interface UserInject{
void inject(User user);
}
/**
* 實現(xiàn)接口類
*/
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 實現(xiàn)全局單例與作用域單例)