简言MVC

  • 什么是MVC?

  MVC是一种代码的组织结构,在一个工程项目中,将代码的数据处理,逻辑单元和交互部分分离开来达到一种低耦合的效果,便于工程的修改。MVC中M代表Model,V代表View,C代表Controller。其中Model负责对数据进行组织,而View负责数据的呈现和与大家的交互,C负责连接View和Model单元,用于处理事务的逻辑。MVC的结构使得数据的呈现和数据的处理和维护分离开来,便于程序的修改。

 

  • MVC的优点

MVC最显著的优点就是逻辑清晰,代码之间耦合度相对来说较低,便于团队之间的分工和合作。这一点在工程中比较重要,当工程变得比较巨大的时候,代码之间应尽量减少交叉,避免后期对代码迭代的时候进行大范围的改动,可以说MVC是面向对象逻辑的进一步的封装。打一个不是很恰当的比喻,面向对象的技术就像是在培养能够干活的工人,而MVC则是将这些工人组织成为工厂。如果理解现在大工程的分工合作模式,我们就知道MVC的魅力之所在, MVC并没有直接提高了计算速度的功能,而是提高了开发者的开发速度,可以说MVC是一个程序员管理代码的管理模式。

  • MVC的缺点

MVC缺点的话,就是三者之间的分工并不是均衡的,一般来说controller的工作量较大,仍然显得有些臃肿。MVC只算是一个轻量级的管理模式,所以比较适合小团体之间的合作。对于一些小的程序,用MVC这么高大上的东西又显得有些多此一举。

经过上面的一些叙述,相比大家仍然不会很清楚什么是MVC,不过只需要记住,MVC就是三块,一块是数据,想要什么数据就从那里面拿,一块是逻辑,想要拿数据必须要经过他,最后一块是呈现。记住了这些,我们就来看看MVC在前台是怎么工作的,当前web前台的MVC有很多可以利用的框架,比如Angular、Backbone、CanJS与Ember,这里主要讨论下MVC在Backbone里是怎么封装起来的。

Backbone.js应该是一个比较轻量级的MVC框架了,压缩后的代码只有8 KB,代码总长度也不过1000多行(包括注释)。不过不要欣喜太早,这并不代表你在使用的时候只需要这1000行代码就足够了,如果你想要更加便捷的使用Backbone.js,你就需要一些其他的库来辅助了,不过也不用担心,和其他框架相比,这个真的是十分轻量级了。

Bockbone.js做了哪些事情呢?

  1. 对事件处理进行了重新封装。。
  2. 封装了Model, View对象。
  3. Router进行连系Model和View。

在介绍Bockbone之前,我们先介绍下SPA的概念。

SPA = Single Page Application,简而言之,就是说你的网站只有一个网页。这有什么好的呢?这样的话网页元素不都挤到一起了么?好像没有那么简单。SPA通过局部刷新的技术,只是将我们想要看到的元素呈现出来而已。考虑到用户越来越慵懒的行为习惯,你就明白Single-Page-Application是很有应用前景的。许多用户在浏览网页的时候总是讨厌打开新的标签,我们如果能停留在一个网页上完成我们最想做的操作,肯定是最好的了,谁愿意每操作一个按钮就看到一个加载图标在不停的打转呢。同时使用SPA,网站整体风格就比较容易控制了,在没有局部刷新以前,我们的网扎需要模板这个东西来保证网站的风格保持一致,但是这样仍然无法避免网页之间交互的麻烦,很多的操作我们都要把前台的数据提交到后台,在把后台的数据发送到前台,这既浪费了带宽,同时更重要的是牺牲了用户的体验。所以我们希望的网页是,网站的后台只相当于一个数据仓库,而所有的处理部分完全在前台执行,这减轻了服务器的负担,提供的服务器服务的效益。可能有人要怀疑前台的能力了,如果我们在后台进行处理,我们可能会用到更加C, C++等编译性语言来处理我们的计算从而来提高计算的性能,但在前台我们只能依赖js脚本了,同时脚本所面临的环境并不如服务器那么稳定,他值得信赖吗?当然,js能代替后台完成一些操作,一些比较关键性的服务当然我们也会考虑放到后台来操作以保证安全,不过也不必怀疑js的计算能力,不是还有一个狂拽酷霸屌炸天的googleV8引擎的么。

       我们队前台的要求高了,如果只把js当做简单的脚本,用来实现一些比较好看的展现效果来用就有些不合时宜了,这时我们就需要一些框架来维护我们的前端代码了,这就是backbone.js了。

                    By 王需

原文地址:https://www.cnblogs.com/juicygroup/p/3349411.html