其实我一直以来,虽然做的是前端的工作,但是有一个疑问,就是什么是mvc模式,虽然大概知道,但是具体确实说不上来的的,今天,我就好好总结一下mvc ,mvp,mvvm模式的区别与相同。

1.MVC模式:

MVC模式的意思是:M(Model) V( View)  C(Controller)

  模型Model:数据保存

  视图View:用户界面

  控制器(Controller):业务逻辑

总结来说就是:用户界面(View) ==> 控制器*(Controller)  输入内容/点击 通过业务逻辑的更改,将内容返回给  ==> 模型(Model)数据通过保存 ==> 返回给 用户界面(View) 反馈给用户

或者(可以MVC的一般流程是这样的:View(界面)触发事件--》Controller(业务)处理了业务,然后触发了数据更新--》不知道谁更新了Model的数据--》Model(带着数据)回到了View--》View更新数据)

2.MVP模式:

MVP模式的意思是:M(Model) V( View)  P(Presenter) 

  模型Model:数据保存

  视图View:用户界面

  Presenter:相当于(MVC中的Controller)

用户界面(View)可以双向访问 <==> 控制器(Presenter) 通过业务逻辑的改变  <==>  数据保存(Model)改变数据

3.MVVM模式:M(Model) V( View)  VM(ViewModel)

  模型Model:数据保存

  视图View:用户界面

  控制器(ViewModel):更改业务逻辑

与MVP模式完全一致,唯一的区别是,它采用双向绑定(data-binding):View的变动,自动反映在 ViewModel,反之亦然。Angular 和 Ember 都采用这种模式。

 

参考链接:http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html

  

最新文章

  1. [Amazon] Amazon IAP for Unity
  2. golang mgo的mongo连接池设置:必须手动加上maxPoolSize
  3. Java和Android Http连接程序:使用java.net.URL 下载服务器图片到客户端
  4. Eruda——手机网页前端调试面板
  5. AWS ElastiCache 使用笔记
  6. 好吧,如果一定要RESTFUL的DJANGO
  7. Python 类型
  8. USACO 1.3.2
  9. 软件测试学习LINUX常用命令
  10. OpenCV实现仿射变换
  11. SparkStreaming
  12. LoadRunner(三)——LR相关概念&amp;组成部分
  13. GMA Round 1 新年的复数
  14. 引擎设计跟踪(九.14.3) deferred shading 准备
  15. leetCode83. 删除排序链表中的重复元素
  16. Java 中的E,K,V,T,U,S
  17. [数据结构]P1.2 队列
  18. 关于Mac OS虚拟机下共享文件夹的方法
  19. &lt;&lt;attention is all you need&gt;&gt;速读笔记
  20. backface-visibility 属性

热门文章

  1. WEB扫描器Atscan的安装和使用
  2. leetcode824
  3. Mycat实战之新增基于hash分片的表
  4. mysql 存储过程 编写注意事项
  5. PHP 使用memcached简单示例分享
  6. objc变量的获取
  7. linux SIGSEGV 信号捕捉,保证发生段错误后程序不崩溃
  8. Composer安装(windows)
  9. win7安装linux双系统
  10. Docker学习笔记_安装和使用mysql