Android MVVM架构理解
2019-03-02 本文已影响67人
山上的神仙
总算对mvvm有点理解了,也知道怎么样去部署这个架构。

大概就是这样的流程,当然这样的流程图,网上可能很多很多,甚至比这个还详细,这是我自己弄的,其实越简单的东西,越能表达我的一些想法。因为我这里使用到了2个官方库 一个是LiveDate,一个是ViewModel。搭配使用,真的厉害...
至于厉害之处就是网上百度的优点,基本都发挥的淋漓尽致,什么防止内存泄漏,绑定生命周期,耦合度大幅度降低,等等...
我这里参考了郭霖大婶的一个Demo,他的MVVM架构,层次分明,结构清晰。
送上地址:https://github.com/guolindev/coolweatherjetpack
由于是Kotlin的,我也熟悉了一天的Kotlin,差不多才理解这个项目。大概是这样的:
1,View层拿到对应的ViewModel,同时写个自定义的Factor,往里面传需要的类,比如数据库类,本地缓存类,网络请求类,这里都进行封装,然后在Inject里面进行统一管理
2, ViewMode层有一些方法,把需要请求参数带过去,以及LiveData也带过去,为了方便通知Activity进行更新,然后进行判断,首先去本地数据库或者缓存拿数据,有的话直接ListData.post进行通知更新UI,没有的话,进行网络请求,然后存入本地,方便下次没有网络,或者网络差,可以优先读取缓存。
3,个人最后稍微加了一点逻辑,因为我们许多地方都会去展示列表,所以这里还是得分情况,是否是用户主动刷新?是的话直接跳过读取本地,不是再去本地。
编程之路长漫漫,不忘初心,方得始终!!