封装之路(三)架构模型

1,724 阅读3分钟


前面写了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 ,官网有详细教程。github.com/luxiaoming/…
更多精彩,敬请期待。