MVC模式、MVP模式与MVVM模式
MVC模式、MVP模式与MVVM模式
在学习编程的过程中,我们或多或少都听说过这几种模式:MVC、MVP与MVVM,今天用一个篇幅来总结一下我认知中的三种模式
MVC
MVC模式的意义是软件可以分为三个部分:
- 视图(View):用户界面
- 控制器(Controller):业务逻辑
- 模型(Model):数据模型
MVC模式的基础通讯逻辑是这样的:
- View传送指令到Controller
- Controller完成业务逻辑后,会要求Model改变状态
- Model数据更新后将数据发送给View,用户得到反馈
互动模式
MVC有两种互动模式,一种是通过View接收指令,另一种是通过Controller接收指令
- 我们使用View接收指令时,View会将指令发给Controller进行逻辑处理,Controller处理以后会通知Model进行修改,随后Model通知View进行更新
- 当我们使用Controller接受指令时,Controller接收到指令,然后通知Model进行数据修改,Model负责通知View进行视图更新。
MVP
MVP模式中Controller变成了Presenter,同时也改变了通信方向
在MVP的模式下View与Model不再发生任何交互,所有的一切都通过Presenter进行通信
Presenter在这里负责所有的业务逻辑处理,View也就成为了“被动视图”
MVVM
MVVM则是我们近些年听到最多的模式,当前应用最广的VUE、Angular与React都是属于MVVM模式的框架
MVVM = Model + View + ViewModel
这里的View与ViewModel的通信方式是双向绑定,View的所有变动都会体现在ViewModel中,由ViewModel进行逻辑处理并且通知Model进行数据更新,反过来一样,当Model中数据进行更新时也同时在ViewModel中进行逻辑处理,然后ViewModel会通知View进行视图更新
总结
以上三种模式对于编程规范甚至是了解框架原理都非常重要,有了模式的基础我们会更好地了解框架地做法甚至时逻辑地实现,能够有效减少无用代码的编写
当然以上大多都是参考自阮一峰老师的《MVC,MVP 和 MVVM 的图示》一文
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 幻尘の屋!
评论