为什么选择MVI
-
MVI
架构是 google 官方目前推荐的 android app 架构 -
MVI
的核心思想是 view-intent-viewmodel-state-view 单向数据流,MVVM核心思想是 view-viewmodel-view 双向数据流 - 代码分层更清晰,
viewmode
无需关心view
如何触发和更新,只需要维护intent
和state
即可 -
View
与ViewModel
的交互更规范,使用 kotlin 密封类特性,封装intent
、state
,代码规范、整洁、易读 -
Intent
和State
的引入也解决了ViewModel
与Model
的界限模糊问题 - MVI架构并不需要引入第三方库,即便在原有的MVVM、甚至MVP基础上也可以衍生出来,重点是领会这种编程思想!
- 装B,新的技术、架构等可以提升代码逼格!这对于一名工程师来说相当相当重要!!!
MVI也有缺点
- 单向流和双向流,并非 好和不好 的选择,而是 适合和不适合 的选择,业务逻辑较为简单的界面,它不需要mvi、mvvm、mvp、mvc,只一个activity或者fragment + layout 即可,一味的套用架构,反而适得其反!
- 逻辑、数据、UI 较为复杂时,
intent
、state
将会变得臃肿 -
state
是不可变类,状态变更时需要创建新的对象,存在一定内存开销 - 并非所有的UI刷新都适合使用
state
封装描述
总结
一味的套用架构,反而适得其反!领会编程思想才是最重要的!我见过很多死搬硬套MVP、MVVM的架构,P层、VM层没有什么代码,业务逻辑依然写在V层,这有何意义?
网友评论