dagger2自己的感悟心得

dagger2还是很好用的一个框架,最起码让你的代码简洁很多,java是面向对象式变成,dagger是依赖注入对象框架,完美了嘛


写好了,在你的类里你就像大将军,指挥手下做事情就行了嘛,而且对象的生命周期人家也考虑到了,scoap嘛,什么跟随application啊,跟随activity啊,跟随用户自定义啊,大概就这两点嘛

下面直接贴图,所谓的mvp模式加dagger2,分分钟搞定

主要说这个p,

(m是模型,就是请求回来的数据啊,什么玩意的,v就是activity啦,控制嘛,谁在控制你的app,交互啥的?那肯定是acitivity嘛,对吧)

现在我就要在baseactivity里,(基类,是基类),没错,注入一个presennt

这个基类是实现了IView接口,但是人家没实现,

我是abstract对象,我抽象,给我的儿子类去实现

这个mbasepresent对象想都不用想,是去请求网络的,(请求网络方法在BasePresnent里)

请求回来,我就掉baseactivity实现Iview的方法,其实就是调告诉子类嘛,对吧,

老子没实现嘛,当然找儿子孙子了,

说白了,你玩的所有的东西都是baseactivity的,但是结果出来了,人家baseactivity很老好,他会告诉自己的儿子,不会私藏,




下面来看下dagger2如何注入的呢,

这个basepresent对象要造他需要什么东西,这是个问题,看下图

通过自己造个module,然后构造方法 传了个baseactivity(参数)的引用进来,然后提供个造basepresent的方法,把baseactivity的引用给basepresent,那这下basepresent不就嗨了嘛,居然拿到了,基类哎

最好PresentModule就成了会造Basepresent的模型类,可以给别人(component)提供数据了



有了module,还得有人调用啊,那就靠component了,同样也是自己造个


这个里面是不是用到了刚才造的presentmodule这个类,是不是有点明白了

那这个void inject(BaseActivity  baseactivity)是什么鬼呢?

其实刚才你明白了,这会儿也是一样,那我造出来的component 谁用呢?我是不是得指定一个?那就是BaseActivity  baseactivity,在这个类里用,这时候你再返回去看第一张图,是不是就感觉很完美了,

DaggerCommonConponent.
        builder().
        presentModule(new PresentModule(this)).
        build().
        inject(this);
给了数据
new PresentModule(this)
),也给了 绑定关系(在Baseactivity里注入了一个BasePresent对象).是不是很酸爽,


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值