Dagger2最简单的基础用法

本文介绍如何使用Dagger2实现Android应用中P层与V层的解耦。通过添加依赖、使用@Inject注解、定义@Module和@Provides,以及注入组件等步骤,实现了Presenter与Activity之间的解耦。
摘要由CSDN通过智能技术生成

添加dagger2的依赖(Android gradle插件版本基于2.3以上,2.2已经之前版本要麻烦些 https://bitbucket.org/hvisser/android-apt

dependencies {
  compile 'com.google.dagger:dagger:2.16'
  annotationProcessor 'com.google.dagger:dagger-compiler:2.16'
}

使用Dagger2让P层与V层解耦,也就是为了搞定这行代码 (v层--activity要用到p层方法就需要持有p层的引用)

private MainActivityPresenter mPresenter = new MainActivityPresenter(this);

第一步:用Inject标记需要注入的属性(上面代码的等号左边):

@Inject
MainActivityPresenter mPresenter;

第二步:指定用来创建对象的类和方法(等号右边)@Module:指定创建对象的类 @Provides:指定创建对象的方法、

@Moudule标记在类上,用来告诉Componet,可以从这个类中获取到依赖的对象

@provides标记在方法上,用来告诉Componet,可以从这个方法中获取到依赖对象的实力

@Module
public class MainActivityModule {

    MainActivity mMainActivity;

 

    public MainActivityModule(MainActivity mainActivity) {
        mMainActivity = mainActivity;
    }
    @Provides
    MainActivityPresenter providersMainActivityPresenter(){
        return new MainActivityPresenter(mMainActivity);
    }

 

}

第三步:将接收者和创建好的对象关联起来(等号 )

@Component(modules = MainActivityModule.class)
public interface MainActivityComponet {
    void in(MainActivity mainActivity);
}

第四步:点击Build -- ReBuild Project

第五步:在MainActivity中注入Presenter

DaggerMainActivityComponet.builder().mainActivityModule(new MainActivityModule(this)).build().in(this);

结束!  

现在我可以在MainActivity中随意调用p层的方法了 比如:mPresenter.login();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值