很常见的疑问,MVI(model-view-intent)到底先进在哪里?
翻了很多类似的文章,但找到简短而明确的总结很困难。因为它们非常相似,例如使用LiveData,ViewModel,Flow/Rxjava,DataBinding等等。
我个人的总结:MVI是更加严格的MVVM。
MVI相比MVVM的优点:
1.更高效的通讯。
MVI采用单向通讯,不需要双向通讯必要的线程锁,在数据结构错综复杂时,性能更加优秀。
2.MVI输出整个状态
迫使程序员必须更加全面的思考,将复用的数据利用到最大。
3.,强制使用流(flow / rxjava)处理逻辑。
可以获得更清晰更严谨甚至到严苛的代码,它意味着更低的维护成本和轻松的测试。
。。。未完待续