MVC、MVP、MVVM模式的区别

一、MVC模式

1.可以分为三个部分:

  • 视图(View):用户界面。
  • 控制器(Controller):业务逻辑
  • 模型(Model):数据保存

2.对于三层之间的通信:都是单向通信

  • view 传送指令到 Controller
  • Controller 完成业务逻辑后,要求 Model 改变状态
  • Model 将新的数据发送到 View,用户得到反馈

注:MVC中View会直接从Model中读取数据而不是通过Controller,controller在其中只是一个连接的作用

MVC、MVP、MVVM模式的区别_第1张图片

二、MVP模式

MVP从MVC演变而来,通过表示器将视图与模型巧妙地分开。在该模式中,视图通常由表示器初始化,它呈现用户界面(UI)并接受用户所发出命令,但不对用户的输入作任何逻辑处理,而仅仅是将用户输入转发给表示器。

MVP 模式将 Controller 改名为 Presenter,同时改变了通信方向。

注:在MVP中View并不直接使用Model,它们之间的通信是通过Presenter(MVC中的Controller)来进行的,所有的交互都发生在Presenter内部

MVC、MVP、MVVM模式的区别_第2张图片

区别:Model提供数据,View负责显示,Controller/Presenter负责逻辑的处理。MVP与MVC有着一个重大的区别:在MVP中View并不直接使用Model,它们之间的通信是通过Presenter(MVC中的Controller)来进行的,所有的交互都发生在Presenter内部,而在MVC中View会直接从Model中读取数据而不是通过Controller。

三、MVVM

MVVM 模式将 Presenter 改名为 ViewModel,基本上与 MVP 模式完全一致。唯一的区别是,它采用双向绑定(data-binding):View的变动,自动反映在 ViewModel

MVC、MVP、MVVM模式的区别_第3张图片

你可能感兴趣的:(模式)