目录
1、视图并不使用控制器去更新模型,控制器负责处理从视图发送过来的用户操作并通过与模型的交互进行数据的更新。
2、 控制器可以和视图融合在一块。Visual Studion中对Windows Forms的默认处理方式就是这样的。【译注:比如我们双击一个Button,然后在它的事件里写处理逻辑,然后将处理的数据写回模型中。这里处理逻辑时间应该是控制器的功能,但是我们并没有专门写一个控制器来做这件事情而是接受了VS的默认处理方式,将它写在Form的代码中,而这里的Form在MVC中它就是一个View。所以这说vs默认的处理方式是将把控制器和视图融合在一起的。】
3、控制器不包含对视图的渲染逻辑(rendering logic)。
1、模型对视图和控制器一无所知,它仅仅是被它们使用。
2、控制器使用视图,并通知它更新数据显示。
3、视图仅仅是在控制器通知它去模型取数据的时候它才这么做。
4、控制器负责处理模型数据的变化。
5、控制器可以包含对视图的渲染逻辑。
缺点:
1、在MVC中View会从直接Model中读取数据而不是通过 Controller,View是可以直接访问Model的! 从而,View里会包含Model信息,不可避免的还要包括一些业务逻辑,Model不依赖于View,但是View是依赖于Model的。
2、如果view可以操控model,有一些业务逻辑可以在View里实现,导致要更改View也是比较困难的,至少那些业务逻辑是无法重用的。