dagger2自己的感悟心得
2018-03-16 10:12
176 查看
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);给了数据
写好了,在你的类里你就像大将军,指挥手下做事情就行了嘛,而且对象的生命周期人家也考虑到了,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对象).是不是很酸爽,
相关文章推荐
- 自己对杨一夫创业心得的感悟。
- 自己对杨一夫创业心得的感悟。
- 最近的工作生活的心得感悟,给自己的表现打50分,不及格
- 自己对杨一夫创业心得的感悟。
- 工作心得,自己感悟的
- 使用LFS打造自己的Linux心得体会
- 人们为什么要在微博、Facebook 等上发布自己的状态信息或者人生感悟?
- 《.NET大局观》的一些阅读感悟与心得体会
- 【工作感悟】Android 开发者,如何提升自己的职场竞争力?
- 今天给自己分享下我的心得体会
- 转载tangl_99的Servlet 实现文件上传下载--自己的一点心得
- 【感悟】试图找回那个自己
- 别人的工作经验+ 自己感悟--好文收集
- 【管理心得】不懂带人,你就自己干到死
- 企业网站首页结构布局几点心得感悟
- 与大家分享一下我的面试经历,也算对自己的一次总结。大家有什么心得,意见都可以畅所欲言。
- 使用LFS打造自己的Linux日常桌面操作系统心得体会
- 庄子心得03: 感悟与超越
- 记录一下自己最近对技术路线的感悟
- 一个牛人的人生感悟与心得