MVC即Model、View、Controller即模型、视图、控制器。
Model层是数据库访问,View层是界面,Controller层是业务逻辑

首先视图接受用户输入请求,然后将请求传递给Controller,Controller再调用某个模型来处理用户的请求,在Controller的控制下,再将处理后的结果交给某个视图进行格式化输出给用户.这是经典的MVC设计执行的基本流程。

前后端分离的MVC架构图 前后端分离是mvc吗_业务逻辑

MVC模式的优点

1、可以把3层分开,调高可维护性,降低复杂度

2、MVC允许对前端进行独立更改,而后端不需要改动或者很少改动。

3、同样可以更改后端而不改前端

4、更改控制器也不会对其他造成影响

5、MVC可以把职位分开(前端,后端,UI),可以在擅长的领域工作。

既然 MVC有优点,那就会有缺点,我认为 MVC 至少有以下三点不足:

1、每次请求必须经过“控制器->模型->视图”这个流程,用户才能看到最终的展现的界面,这个过程似乎有些复杂。

2、实际上视图是依赖于模型的,换句话说,如果没有模型,视图也无法呈现出最终的效果。

3、渲染视图的过程是在服务端来完成的,最终呈现给浏览器的是带有模型的视图页面,性能无法得到很好的优化。

那么我们改进MVC,将浏览器视为前端,而服务器视为后端,可以将改进的MVC模式简化为前后端分离模式:

前后端分离的MVC架构图 前后端分离是mvc吗_ajax_02


前后端工程师需要约定交互接口,实现并行开发,开发结束后需要进行独立部署,前端通过ajax来调用http请求调用后端的restful api,后端通过JSON传输数据。前端只需要关注页面的样式与动态数据的解析&渲染,而后端专注于具体业务逻辑。这样前后端工程师只需要专注于自己的工作,从而可以更好地提升用户体验。