MVVM各层职责

930 阅读1分钟

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测试