关于MVC和ajax的思考

要想对这个发表一些看法,那还是先度娘一下,看看官方对MVC的解释:

MVC是三个单词的缩写,分别为:模型(Model),视图(View)和控制Controller)。MVC模式的目的就是实现Web系统的职能分工。Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现。View层用于与用户的交互,通常用JSP来实现。Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。

补充解释:

Event(事件)导致Controller改变Model或View,或者同时改变两者。只要Controller改变了Models的数据或者属性,所有依赖的View都会自动更新。类似的,只要Controller改变了View,View会从潜在的Model中获取数据来刷新自己。

ajax就不用解释了,大家都懂的,新瓶装旧酒,最大的特点就是不重刷页面的同时,改变我们界面上的数据和信息;

在AJAX或者说基于AJAX的界面框架诸如EXTJS,EDOJS等等出来之前,咱们开发WEB应用,是怎么回事呢?

用过STRUTS的人都知道,JSP就是VIEW,用来显示界面和用户交互,controller就是对用户的请求事件处理,并决定改该用什么model该怎么view。

当AJAX的框架出现之后,我想整个WEB应用开发(我这里强调的是企业应用而非网站),咱们的VIEW和controller的位置发生了变化:

view交给了js来处理,controller也可以认为交给了js来处理,而我们的webserver就是一个model的接口,或者说是一个数据和业务逻辑的接口;

那么controller被分成了用户事件和业务逻辑,一个在JS中,一个在服务器端;

这样一来咱们可以从新来定义基于AJAX的MVC模式:

1.用户界面:由EXTJS来绘制

2.用户事件:由JS来处理,并转化为服务器端事件;

3.业务数据服务:收到来自JS客户端的数据和事件,作出相应的回应;

有趣的事情发生了,看看这个,是不是和我们的CS模式架构类似呢?

这样一来咱们又回到了CS模式时代,区别就是以前的CS的C端是VB,.NET通过数据库连接,通过socket或者其他方式和数据库服务端联系;

现在咱们的C端采用的是JS来实现,并且通过AJAX来和服务器端通信,中间传输的是XML或者JSON或者其他格式的数据;

万变不离其中啊,还是重复不知道某位达人说的话,大意如下:

只要心中有MVC,自然就MVC了,只要心中有设计模式,不需要你来想该用何种模式!

咱们做开发最忌思维僵化,身板硬套,为了用某种技术而用它;

技术是我们解决业务问题的基础,这是必须具备的,但是不要成为我们解决实际问题的障碍!

大家共勉!

相关推荐