前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >封装之路(三)架构模型

封装之路(三)架构模型

作者头像
用户1263308
发布2018-02-01 18:55:26
4800
发布2018-02-01 18:55:26
举报
文章被收录于专栏:代码GG之家

封装之路(三)架构模型

前面写了BaseApp和BaseActivity的源码,有留言询问怎么使用,这里简单说下:

  • 这个框架的形成原因是由于自己在学习开发android时候,重复以及代码重构太差,因此开始关注开发架构,而使用了一些开发架构,比如MVP+Dagger2的模型,其实完全可以解决当前问题,后续在关注MVVM时候,发现它的优势更大(当然也有利弊,总体来说,比MVP更好用),而当前流行的MVVM架构,使用的是三方实现的databinding(不符合主流google,果断放弃),因此自己想去实现一个基于MVVM的框架,同时将开源的三方比较成熟的库依赖进来,做出一些工具类,方便快速开发,后续完善代码的同时,去完善文档,使这套框架可以呈现生命特征,延续持久的存在下去。
  • 有时需要权衡,Base到底是实现更多功能,还是保持清晰,只存留简单的架构的内容,其余的统统留给开发者。(这里我选择了后者,保持其单纯目标即可)
  • 由于也是自己慢慢实践,必然有不成熟的地方,欢迎大家指出。

这节我们讲下整体架构,也是后续这边xmCore架构去完善的地方。首先,我们看下这张图:

这里我们依次讲解下各个模块的目的:

  • BaseApp 这个里面完成基础app的功能,比如存储,log之类的,性能之类。这个后面会慢慢修改的。
  • BaseActivity 这个里面完成初始化View和注入Vm,绑定Vm的过程,随后则将逻辑推给Vm,后续有个消息注册和Bus的绑定解绑,也在base内部处理掉,我们外面不需关注了,直接使用即可。
  • BaseViewModel 实现VM的代码逻辑,里面绑定Model,和设计好通知界面更新,通过Model去拿到数据,这边注册Bus,通过注解来获取到Model返回的数据,进行通知界面更新即可。
  • BaseBean 数据原型,让继承使用,主要目标是让所有数据都继承这个,方便后面变量传入,强转和判断使用的。
  • BaseModel model的基类,基本没啥动作,初始化即可。后续方便实现基础功能,作为所用Model的基类使用。

Retrogit +okhttp 完成网络数据请求动作。RxAndroid完成返回数据的初步处理过程,然后交给VM去处理即可。

数据库将会使用GreenDao ,可以初步去网上看看,之前一直没使用的原因是Greendao之前是需要手动完成table的生成的,不方便,最新的已经可以直接注解方式实现,非常方便,值得推荐。

号称比GSON快很多的json解析工具LoganSquare,有兴趣的可以看看。

图片缓存,解析,使用Glide即可。

Bus 我们选择otto,想了解更多,百度下即可。

缓存使用 ASimpleCache ,官网有详细教程。https://github.com/luxiaoming/ASimpleCache。

更多精彩,敬请期待。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-08-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 代码GG之家 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 封装之路(三)架构模型
  • 前面写了BaseApp和BaseActivity的源码,有留言询问怎么使用,这里简单说下:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档