MVP+Dagger2+Retrofit实现更清晰的架构
来源:互联网 发布:有马贵将 知乎 编辑:程序博客网 时间:2024/06/10 06:25
个架构已经有不少文章介绍了,今天打算自己实践下。
MVP概念不多说了 相关介绍已经很多了
Dagger2:依赖注入框架,用来解决依赖 除了基本依赖 mvp的V–>P–>M的之间依赖也轻松解决 方便不少
Retrofit:用来解决M的RestApi数据获取, 天然支持Rxjava 不过这里我没用到Rxjava 其自带的Callback已经足够用了
估计这个架构的难点在于Dagger2 理解它的工作方式需要方式需要点时间,我收集了一些资料,可以查看我博客的相关文章。
ok,开始写demo,简单看下项目结构
- data:数据来源 也就是MVP的M
- model:实体bean,本来也应该放在data中,为了方便查找就抽出了,毕竟很多地方用到
- ui:视图,V和P都在里面,View层是最难组织的,有人喜欢以功能划分 eg:main,login 有人喜欢以组件划分
来简单看一下dagger2提供的依赖结构
AppComponent通常提供全局的对象以便于其他的组件依赖使用,比如context,rest api接口等,这些都是全局的单例对象
MainActivityComponent特意针对MainActivity,所以它只提供其对应的MainActivityPresenter,因为其依赖AppComponent,所以它可以使用AppComponent提供的对象
AppComponent
可以看到其向外公布了Application,ApiService,User三个对象,供其他component都可以使用
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
MainActivityComponent
它依赖了AppComponent,本身只提供了MainActivityPrresenter,并且只针对MainActivity
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
最后看一下Activity怎么使用
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
代码就不全贴了 后面会放到github上面去
显而易见,整个项目和结构会非常舒服,各个模块各司其事,有了dagger在扩展和测试会非常方便,分别提供DebugComponent和ReleaseComponent随意切换
- MVP+Dagger2+Retrofit实现更清晰的架构
- MVP+Dagger2+Retrofit实现更清晰的架构
- MVP+Dagger2+Retrofit实现更清晰的架构
- MVP+Dagger2+Retrofit实现更清晰的架构
- MVP+Dagger2+Retrofit实现更清晰的架构
- MVP+Dagger2+Retrofit实现更清晰的架构
- 更清晰的Dagger2 + MVP 架构
- 简单实用的mvp+retrofit+rxjava+dagger2
- MVP+Dagger2+Retrofit+Rxjava
- RxJava+Retrofit+MVP+Dagger2
- RxJava+Retrofit+MVP+Dagger2
- MVP-Dagger2-Rxjava2-Retrofit整合
- RXjava+Retrofit+dagger2打造自己的MVP框架
- MVP+Dagger2架构详解
- 仿京东app,采用组件化开发 ARouter + mvp + dagger2 + rxjava + retrofit + fresco 架构
- Dagger2实现MVP模式
- 一种更清晰的Android架构
- 一种更清晰的Android架构
- win7共享配置
- emgu 图像列获取
- makefile的写法(怎么写makefile)
- Android数据存储和访问-登录记住密码功能
- Eclipse注释模板设置
- MVP+Dagger2+Retrofit实现更清晰的架构
- Exmobi之区别
- 正则
- Z-Wave Multi Channel Basics zwave多功能复合设备实现
- 简述数据库锁
- bzoj1001
- eclipse关联源码
- Window常见问题
- 据前序遍历和中序遍历重建二叉树