MVC浅析
MVC是什么?
在没有了解到MVC之前,我们写项目的时候会把所有的内容都写到同一个JS文件中,在实现了多个页面后我们发现这些页面有很多重复的东西,而且每个页面内容十分冗杂,对后续的维护更新带来了比较大的麻烦。
为了解决上面的问题,前端开发者使用MVC架构模式对页面代码进行优化。
MVC,即Model-View-Controller,分别对应着一个页面的数据层,视图层,逻辑层。

最简单的MVC通信方式:
- View传递信息给Controller。
- Controller完成逻辑后,传递信息给Model改变数据。
- Model将新的数据发送给View,修改界面。
MVC架构模式在实际的使用中,有更加灵活的方式:
BackboneJS框架使用的就是MVC架构模式,但是它在MVC通信的方式上更加地灵活

- 用户可以向 View 发送指令(DOM 事件),再由 View 直接要求 Model 改变状态。
- 用户也可以直接向 Controller 发送指令(改变 URL 触发 hashChange 事件),再由 Controller 发送给 View。
- Controller 非常薄,只起到路由的作用,而 View 非常厚,业务逻辑都部署在 View。所以,Backbone 索性取消了 Controller,只保留一个 Router(路由器) 。
MVC的特点
优点
-
耦合性低
M、V、C三个模块相互之间的影响非常地小,当对其中一个模块进行维护升级、数据搬运等工作时,对其他的模块影响极小。
-
重用性高
MVC允许使用各种不同样式的视图来访问同一个服务器端的代码。只需要改变View的实现方式即可,而无需对数据层,逻辑层进行改动。
-
部署快、可维护性高
使用MVC模式使开发时间得到相当大的缩减。因为模块的分离,所以开发者可以主力攻坚其中一个模块,而不需要多头兼顾。而且由于分离了视图层和逻辑层,也更易于维护。
缺点
-
定义模糊
MVC的概念非常模糊,每个开发者可能对它的理解都不尽相同。
-
不适合中小型规模项目
由于MVC整体比较复杂,对于中小型项目可能反而会使他们更加笨重。对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。
参考文章:
- MVC,MVP 和 MVVM 的图示--阮一峰
- MVC--百度百科