MVC浅析

392 阅读2分钟

MVC浅析

MVC是什么?

在没有了解到MVC之前,我们写项目的时候会把所有的内容都写到同一个JS文件中,在实现了多个页面后我们发现这些页面有很多重复的东西,而且每个页面内容十分冗杂,对后续的维护更新带来了比较大的麻烦。

为了解决上面的问题,前端开发者使用MVC架构模式对页面代码进行优化。

MVC,即Model-View-Controller,分别对应着一个页面的数据层,视图层,逻辑层。

最简单的MVC通信方式:

  1. View传递信息给Controller。
  2. Controller完成逻辑后,传递信息给Model改变数据。
  3. Model将新的数据发送给View,修改界面。

MVC架构模式在实际的使用中,有更加灵活的方式:

BackboneJS框架使用的就是MVC架构模式,但是它在MVC通信的方式上更加地灵活

  1. 用户可以向 View 发送指令(DOM 事件),再由 View 直接要求 Model 改变状态。
  2. 用户也可以直接向 Controller 发送指令(改变 URL 触发 hashChange 事件),再由 Controller 发送给 View。
  3. Controller 非常薄,只起到路由的作用,而 View 非常厚,业务逻辑都部署在 View。所以,Backbone 索性取消了 Controller,只保留一个 Router(路由器) 。

MVC的特点

优点

  1. 耦合性低

    M、V、C三个模块相互之间的影响非常地小,当对其中一个模块进行维护升级、数据搬运等工作时,对其他的模块影响极小。

  2. 重用性高

    MVC允许使用各种不同样式的视图来访问同一个服务器端的代码。只需要改变View的实现方式即可,而无需对数据层,逻辑层进行改动。

  3. 部署快、可维护性高

    使用MVC模式使开发时间得到相当大的缩减。因为模块的分离,所以开发者可以主力攻坚其中一个模块,而不需要多头兼顾。而且由于分离了视图层和逻辑层,也更易于维护。

缺点

  1. 定义模糊

    MVC的概念非常模糊,每个开发者可能对它的理解都不尽相同。

  2. 不适合中小型规模项目

    由于MVC整体比较复杂,对于中小型项目可能反而会使他们更加笨重。对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。

参考文章:

  • MVC,MVP 和 MVVM 的图示--阮一峰
  • MVC--百度百科