关于MVC与MVP的理解

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

posted on 2018-03-10 21:17  刘艺LiuYi  阅读(130)  评论(0编辑  收藏  举报

导航