MVC,MVP和MVVM都是用来解决界面呈现和逻辑代码分离而出现的模式,查找相关资料,本篇文章是借鉴相关资料对MVC,MVP和MVVM的进行总结,加深自己对这几种模式的理解,便于查看。
借用一张图来直观地表示这三种模式:
图片来源于这篇文章。
MVC
Model:数据存储,View:用户界面,Controller:业务逻辑
View 传送指令到 Controller;Controller 完成业务逻辑后,要求 Model 改变状态;Model 将新的数据发送到 View,用户得到反馈。
MVC模式是单向交互。
MVP
View:Android中的Activity。同时需要创建一个View的抽象接口View interface。需要View实现的接口,View通过View interface与Presenter进行交互,降低耦合。
Model:用来操做实际数据(譬如数据存储等)。有时也需要创建一个Model的抽象接口Model interface用来降低耦合。
Presenter:作为View与Model交互的中间纽带,处理与用户交互的负责逻辑。
MVVM
MVVM模式中,一个ViewModel和一个View匹配,它没有MVP中的IView接口,而是完全的和View绑定,所有View中的修改变化,都会自动更新到ViewModel中,同时ViewModel的任何变化也会自动同步到View上显示。
这种自动同步之所以能够的原因是ViewModel中的属性都实现了observable这样的接口,使绑定的UI自动刷新。
关于MVVM的详解请参考这篇文章。
参考文档:
https://blog.csdn.net/yanbober/article/details/45645115
https://www.jianshu.com/p/2fc41a310f79?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation