关于MVC与MVP的理解
2024-10-06 21:36:14
1. MVC的理解误区
理解误区:
1. 认为Model是指失血模型的实体类(Entity),是作为View和Controller之间的传输数据。
2. 把业务逻辑全部放在Controller端,认为Controller是用来写UI的业务逻辑的。
这两个误区本质上都是对Model的作用不明导致的。
Model在MVC架构中起的作用很重要,它是UI业务逻辑真正的实现层。所以Model实际上是Business Model(业务模型)。
Controller仅起“桥梁”作用,它负责把View的请求转发给Model,再负责把Model处理结束的消息通知View。
Controller就是一个消息分发器;Controller是用来解耦View和Model的,也就是为了让UI与逻辑分离(界面与代码分离);
2. MVC与VCP的区别
MVC的View直接与Model打交道,Controller只转发View的请求、以及Model处理完之后的通知,不传递数据(业务结果),而是由View直接向Model拿数据。
MVP的View不与Model直接联系,所有的请求、结果通知、数据传递都是通过Controller转发,View和Model彼此不知道对方的存在。
3. MVC与MVP的相同点
无论是MVC还是MVP,View和Controller都是紧密联系的,在WinForm模式下更显突出,View和Controller在一个类里面直接绑定在一起了
MVC/MVP都是通过“通知”机制(观察者模式,在C#中使用事件)来解决View和Controller的交互。
最新文章
- 使用Setup Factory安装包制作工具制作安装包
- [转载]DW数据仓库建模与ETL的实践技巧
- setAttribute()和getAttibute(),getParameter()
- Google java代码风格导入Eclipse
- PHP array_count_values() 函数用于统计数组中所有值出现的次数。
- Volley HTTP库系列教程(5)自定义一个Volley请求
- 1709. Penguin-Avia(并查集)
- 如何定制Sink扩展.Net Remoting功能
- Linux如何查找文件安装路径?
- 算法导论——lec 10 图的基本算法及应用
- Sql 增加字段(有些只能在ORACLE中运行)
- 它们的定义dialog
- cron任务解释
- Python学习_10__python2到python3
- 温故而知新-set
- 【酷我天气】完整的天气App项目
- NOIP2015斗地主(搜索+模拟+贪心)
- Druid 在有赞的实践
- 763. Hex Conversion [LintCode naive]
- Linux服务器配置秘钥对连接