MVC和MVP的区别
2024-10-11 23:06:27
MVC: Model - View - Controller
MVP: Model - View - Presenter
MVC和MVP到底有什么区别呢?
从上图可以看到在MVC里,View是可以直接访问Model的,从而View里面是能包含Model的信息的,不可避免还要包括一些业务逻辑。在MVC里更关注Model的不变,而同时有多个对Model的不同展示。
把Controller和View混在一起,会有一些弊端:
1、难以测试。
2、代码难以重用。
MVP是如何解决MVC的问题的?
在MVP里,Presenter完全把Model和View进行了分离,主要的程序逻辑在Presenter里实现,而且Presenter与具体的view是没有一点关联的,而是通过定义好的接口进行交互,从而使得在变更View的同时可以保持Presenter不变,即重用。
在MVP模式里,View只应该有简单的Set/Get方法,用户输入和设置显示的内容,除此不应该有更多的内容,绝不允许直接访问Model,这就是与MVC最大的不同之处。
最新文章
- 关于 redis、memcache、mongoDB 的对比
- maven 配置
- [转]JavaScript程序编码规范
- thinkphp框架中“关联操作”的完整定义详解
- webform FileUpload控件实例应用 上传图片
- 2015年p2p网络借贷平台的发展现状
- LCIS POJ 2172 Greatest Common Increasing Subsequence
- Spring源码之SimpleAliasRegistry解读(一)
- javascript中的removeEventListener失效问题
- vim自动补全:go
- Qt事件机制浅析(定义,产生,异步事件循环,转发,与信号的区别。感觉QT事件与Delphi的事件一致,而信号则与Windows消息一致)
- 使用JDK自带的MessageDigest计算消息摘要
- 阿里舆情︱舆情热词分析架构简述(Demo学习)
- Windows 2008 asp.net 配置
- object detection[YOLOv2]
- bzoj 2460 [BeiJing2011]元素 (线性基)
- oracle进阶之connect by笔记
- An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence Modeling
- 【Selenium-WebDriver问题点】chromeDriver和chrome浏览器版本之间的兼容性问题
- Maven项目jar包的依懒范围