MVC、MVP、MVVM模式关系总结

MVC模式(Model - View - Controller)

是一种web架构的模式
Model:是程序需要操作的数据和信息
View:提供给用户的操作界面,是程序的外壳
Controller:接收View层传递过来的指令,选取Model层对应的数据,进行相应操作
首先由 View 接受用户交互请求,然后 View 将请求转交给 Controller ,Controller 操作 Model 进行数据更新,数据更新之后,Model 通知 View 更新变化数据
MVC有如下两种模式,由图可以看出,View层会从Model层那拿数据,因此MVC中的View层和Model层存在耦合。
方式:单向通信
MVC、MVP、MVVM模式关系总结
MVC、MVP、MVVM模式关系总结

MVP模式(Model - View - ViewModel)

MVP是由MVC进化而来的,通信有两个方向:V -> P -> M,M -> P -> V,MVP的View层和Model层的交互只能通过Presenter
首先由 View 接收到用户的请求,然后 View 将请求交给 Presenter, Presenter 操作 Model 进行数据更新,Model 通知 Presenter 数据发生变化,最后由 Presenter 更新 View 数据
方式:各部分之间都是双向通信
MVC、MVP、MVVM模式关系总结

MVVM模式(Model - View - ViewModel)

是一种基于前端开发的架构模式
首先由 View 接收到用户的交互请求,然后 View 将请求转交给 ViewModel ,ViewModel 操作 Model 数据更新,Model 更新完成数据之后,通知 ViewModel 数据发生变化,最后由ViewModel更新View数据
方式:双向数据绑定,View/Model的变动,自动反映在 ViewModel。
MVC、MVP、MVVM模式关系总结

MVC、MVP、MVVM三者演化过程

MVC、MVP、MVVM模式关系总结