学过ASP.NET, DJango, 和Vue,然后我还去查询了一些 关于MVP的文章 ~
MVC就是Model, View和Controller
我们写ASP.NET的过程
通信方式是酱紫的:M->V->C->M->...
Model
将数据传递到 View
中展示
用户在 View
中的操作传送到 Controller
中运行相应代码
Controller
运行的代码将改变 Model
的结果
MTV是 Model
, Template
(MVC中的View)和 View
(MVC中的Controller)
通信方式就是M->T->V->M...
MVVM是 Model
View
ViewModel
Model
还是跟数据挂钩, View
还是跟视图挂钩
ViewModel
则是二者之间的桥梁。
在MVVM中,M和V并不直接进行通信,而是要通过VM。
通信方式是这样的:View<=>ViewModel<=>Model
MVP(P是Presenter)跟MVVM很接近,唯一的区别根据 上面提到的那篇文章
,在于"MVVM用双向绑定(data-binding):View的变动,自动反映在 ViewModel,反之亦然。"。那么MVP就是没有双向绑定的MVVM,也就是说 View
发生变动的时候需要进行一次通信,传输给 Presenter
。