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的交互。

最新文章

  1. 使用Setup Factory安装包制作工具制作安装包
  2. [转载]DW数据仓库建模与ETL的实践技巧
  3. setAttribute()和getAttibute(),getParameter()
  4. Google java代码风格导入Eclipse
  5. PHP array_count_values() 函数用于统计数组中所有值出现的次数。
  6. Volley HTTP库系列教程(5)自定义一个Volley请求
  7. 1709. Penguin-Avia(并查集)
  8. 如何定制Sink扩展.Net Remoting功能
  9. Linux如何查找文件安装路径?
  10. 算法导论——lec 10 图的基本算法及应用
  11. Sql 增加字段(有些只能在ORACLE中运行)
  12. 它们的定义dialog
  13. cron任务解释
  14. Python学习_10__python2到python3
  15. 温故而知新-set
  16. 【酷我天气】完整的天气App项目
  17. NOIP2015斗地主(搜索+模拟+贪心)
  18. Druid 在有赞的实践
  19. 763. Hex Conversion [LintCode naive]
  20. Linux服务器配置秘钥对连接

热门文章

  1. 04 MySQL之函数
  2. 一百一十七:CMS系统之注册页面对接短信验证码
  3. java设计模式中的动态代理
  4. R语言与概率统计(五) 聚类分析
  5. jack反序列化自定义字段绑定,报错:can only instantiate non-static inner class by using default, no-argument constructor
  6. Pytorch-属性统计
  7. 树莓派-Ubuntu Mate开启远程桌面xrdp服务
  8. DRF之APIView源码解析
  9. PhpSpreadSheet 读写excel文件
  10. vue等单页面应用优缺点