M(Model)
- 远程数据获取
- 本地缓存管理 最好实现一个数据仓库,由数据仓库管理数据如何获取(从远程还是本地)。
远程数据获取
如何获取服务器数据(Retrofit+RxJava);
本地缓存管理
- 远程获取的数据如何缓存于本地、缓存策略;
- 客户端(VM)获取数据时如何使用缓存;
V(View)
- 根据VM递交的数据,将数据展示给用户;
- UI特效处理管理;
- 由VM数据驱动。
VM(ViewModel)
- 根据V层的数据请求,构建合适的M层数据模型;
- 根据V层的生命周期,缓存V层本生命周期内的数据,在V生命周期变为“活动”时(onResume)时递交数据给V;
原则
- M和V相互独立,互不依赖
- VM可独立测试,且不应依赖V
- 各层可独立测试
- M Junit单元测试
- VM Junit单元测试
- V Android Junit测试