什么是MVC?

218 阅读1分钟

过去20年来网站从简单的HTML搭配一点CSS进化到现在的越来越复杂的状况,为了简化和模块化,设计了MVC模式。

1.Controller

当用户基于URL向服务器请求(request)一个页面(page)时,服务器会把所有请求信息(request information)传给特定的Controller,这个Controller负责处理来自客户端(浏览器)的请求流(handles request flow),同时告诉其他服务器该如何处理这个请求。Controller就像一个介于Moudle和View之间的中间人。

image.png 当Controller接收到一个request后首先做的事是向Model要相关信息。

2.Module

Module的任务是处理所有关于这个request的数据逻辑(data logic),Module会与数据库交互,处理验证、增删改查之类的数据操作。

image.png Controller是不直接参与数据处理的,他仅仅负责接收和发送数据,这样做的好处在于Controller不用处理数据,只需要告诉Module该怎么做就好。而Module也不用关心数据是request传输成功还是失败,它只关心数据和数据库的交互,然后返回给Controller。

3.View

在收到Module传来的数据之后,Controller会去和View交互,把数据渲染(render)给用户看。View只关心如何去呈现从Controller收到的信息,它动态渲染HTML生成模板文件(template file),之后View会把生成的东西(presentation)传回Controller,Controller再传回给用户。

image.png 参考资料: MVC Explained in 4 Minutes