关于MVVM与MVI

文章目录

  • 一、MVVM优缺点
  • 二、MVI
  • 总结


一、MVVM优缺点

关于MVVM与MVI_第1张图片
MVVM优点:
(1)解耦;
(2)双向绑定,简化编程;
MVVM缺点:
(1)由于双向绑定导致定位问题比较麻烦;
(2)多个刷新点,对于特定问题可能设计多个数据、多个路径(所以MVVM中比较注重三个刷新点)。
(3)view中绑定了较多的LivedData,复用相对较困难。

二、MVI

MVI中的I是Intent,Intent即意图,比如获取数据、获取详情、修改数据等;
MVI中的V是View;
MVI中的M是ViewModel;
MVI中的流程是单向的;
View的变化仅依赖于UIStete,(例如对于请求,有请求中、请求成功、请求失败、三种State),使用UIState之后数据与View的耦合度更低,且便于扩展。
关于MVVM与MVI_第2张图片
关于MVVM与MVI_第3张图片
viewmodelscope会运行在在ViewModel的作用域中,在ViewModel中会将收集到的结果打包成一个UIState,UIState不仅仅是一个状态值,它还携带数据。


总结

提示:这里对文章进行总结:

(1)MV/MVP/MVVM/MVI 中的C/P/VM/I都是用于描述model和view的关系;
(2)解耦的目的是为了方便复用;

你可能感兴趣的:(Android,android,个人开发)