1:MVVM框架的本质是数据驱动,注意:这点非常重要
2:在xml中使用能够让控件和数据进行绑定的插件,比如databinding,其实不仅限于databinding,任何其他的能够让控件和数据进行绑定的插件都可以使用
3:activity或者fragment充当view层,然后再创建一个viewmodel层,viewmodel层的作用是请求网络拿到网络接口返回的数据,并对返回的数据进行处理,这里的对数据进行处理并不仅仅是将返回的json转成JavaBean,而是要处理成xml层能够直接使用的数据,比如日期字段,接口返回的可能是毫秒值的时间戳,而UI需要显示成年月日,这时就需要viewmodel层对数据进行处理了,先将JavaBean中的time字段取出,通过工具类转成年月日,再赋值给xml中的字段,这里需要注意一点,xml中的字段可以和JavaBean中的time字段相同,也可以不同,注意字段的数据格式即可
4:通过上面的第三步就可以看出,view层和model层是完全解耦的,在自己写的代码上没有任何的交集
5:view层和viewmodel层的双向绑定问题:点击了view层的按钮后调用viewmodel层的方法来请求接口,接口取得数据后并不通过回调的方式再返回view层而是直接去改变xml中UI的显示,注意这点非常重要,在mvc 和mvp 框架中,接口取得数据后都会再回调给view层
6:区分mvc和mvp的最明显标志是:view层和model是否完全解耦,在代码上的判断就是网络请求的相关代码是否写在了Activity或者fragment里面
网友评论