MVC
-
Model:数据模型,管理数据 -
View:视图,呈现界面 -
Controller:控制器,业务逻辑
这三层之间的通信流程是 :
-
View传指令(用户操作)给Controller -
Controller处理请求,然后通知Model处理数据状态 -
Model处理完后,通知View更新界面,完成交互
View 做的工作比较多,流程如下图所示:

MVC通信
MVP
和 MVC 类似,只是把 C 改为了 P (Presenter)。View 和 Model 不再直接通信
-
Model:数据模型,管理数据 -
View:视图,呈现界面 -
Presenter:控制器,业务逻辑
这三层之间的通信流程是:
-
View传指令(用户操作)给Presenter -
Presenter处理请求,然后通知Model处理数据状态,Model处理完后,返回新的数据给Presenter -
Presenter拿到新的数据后返回给View,更新界面,完成交互
从上面的流程可以看出,Presenter 会比较厚重一些,流程如下图所示:

MVP通信
MVVM
和 MVP 类似,只是把 P 改为了 VM (ViewModel)。
-
Model:数据模型,管理数据 -
View:视图,呈现界面 -
ViewModel:控制器,业务逻辑
在 MVVM 中,实现了 View 与 ViewModel 之间的数据绑定 data binding,它们之间任何一方的改动,会立刻映射到另一方。
流程如下图所示:

MVVM通信