我理解的MVC开发模式

来源:互联网 发布:java实战项目百度云 编辑:程序博客网 时间:2024/06/05 10:14

       说起大名鼎鼎的MVC开发模式,我想只要是学程序开发都听说过吧。

       M:模型层(model)

       V :视图层(view)

       C :控制层(controller)

         这是我对mvc的理解。然而在实际开发过程中,我比较喜欢的是将模型层(model)再分化出两层来,即服务层(service)、容器(reponent)层,我喜欢这种开发模式的想法来自java spring。

        有什么作用,举个例子,你就能理解到里面的精髓了。

        比如现在我们团队是多人合作开发。其中前后端各n人。

        现在规定,一个后端人员(A)要专门来封装一个view(视图)所需要的数据。

        n-1个后端(B)来开发项目的业务逻辑。由后端A 来 调取 后端B提供的service(服务接口)获取view(视图)需要的数据。比如,一个视图view需要后端将某页的商品信息显示出来,那么后端A 只需实例化某个对应的服务类,调用该服务类下的某个对应的函数,传入分页数,就可以获取到需要显示的数据了。  而具体是怎么实现的,后端A不需要知道,只需要怎么去使用就行了,具体业务逻辑的处理都由后端B为我们实现了。再简单点理解就是后端B提供了一个机器给你,你不需要知道这个机器的是怎么工作的,你只需要这个机器怎么使用就可以了。其它教程称之为模块化设计。就是一个模块依赖于另一个模块。

         现在我讲解一下我喜欢这种工作模式的原理。

        view层:响应给浏览器的html代码(包含模版语法,就是后台传递过来的变量。一般都是由解析引擎去解析,不纯粹是html代码,可能会包含模版语法)。

        controller层:接受来自网页的请求(request),并封装该请求(request)需要的数据,及获取该request的参数,调用相应的服务(如果需要的话)

        service层:供controller层或其它组件实例化调用。所有关于业务逻辑的实现都会在这一层上实现。如用户注册,那么由controller层接受来自前端数据,再由controller层调用service层来处理。(仔细理解一下)

        reponent层:数据库层(不管是谁都可以调用),这一层是对数据库访问的上一层。如我们对数据库的增、删、改、查都会交给这一层去处理。如用户注册,在service层处理完毕 需要添加到数据库,那么service就会实例reponent层并调用相应方法。

         有时候,网页上会包含某些ajax请求获取数据,这时候后端A就需要提供给前端一个接口Url表,告诉前端各个url请求接口地址,及相应的需要传递什么参数,响应的结果都有哪些。下面我举个例子:

api url: http://wwww.xxxxxx.com/xxxxxx.jsp

http request get

@param

String name 姓名

String tel  电话

@reponse json

{

  "errCode” : 20001,

  “msg”       : “不是ajax请求”

}

{

  "errCode” : 20002,

  “msg”       : “请输入正确的电话号码”

}

这是我习惯的提示模式,理解如下,当然你也可以和你的前端自行约定规则。

api url: http://wwww.xxxxxx.com/xxxxx.jsp  告诉前端请求接口地址

http request get 告诉前端这个地址接受的请求类型 (可以填写多个 如 http request get or post)

@param   告诉前端该接口需要传递哪些参数

@reponse 告诉前端该接口响应哪些数据(上面我写的是@response json   就是告诉前端该接口响应json数据,并且响应的json数数据结果就是下面的json)

        然后分工合作,该做前端的做前端。该做后端的做后端。每个人都清楚自己要做哪些东西了。

       

0 0
原创粉丝点击