码迷,mamicode.com
首页 > Web开发 > 详细

浅析MVC中的数据流动

时间:2021-06-02 10:45:31      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:视图   框架   数据   数据库操作   之间   创建   上层   entity   基本   

  我们知道传统的MVC框架中,会有Controller层、Service层、DAO层,分别用来对接用户界面、处理业务逻辑、对接数据库。那么对于数据流动的处理是怎样的呢?

  最早前后端没有分离的时候,Contoller层是会返回一个视图View的,就是一个页面。到后来前后端分离,Controller就仅仅用来返回JSON格式的数据了,但是它的职责不变,1. 校验入参,2.生成并组装出参。在以前入参可能是一个form表单,实际也可以认为它是一个视图,即提交一个视图,转化成模型处理业务逻辑,最后把所需的视图返回出去。因此View Object ,VO就是这么来的。现在为了区分出参和入参,一般地,会将入参取名为Query Object QO , 出参为VO。在Controller,VO转换成DTO(Data Transfer Object)交由对应的Service去处理。

   到Service层,DTO会被业务逻辑进行各种处理,可能有各种各样的DTO创建、转换。而数据来源,一方面是由上层过来的DTO,另一方面会从DAO层获取实体Entity。在这一层,会调用各种DAO对数据库的数据进行CRUD。可以理解为Service是直接操作DAO,并且处理业务逻辑。最新的趋势(已经蛮久),增加一个Business层,在Controller层和Service层之间,Business处理更上层的业务,而Service处理基本的业务。可以把Service理解为“业务中台”,Business理解为“业务前台”。

     DAO层没有任何业务逻辑,也不应该下沉业务逻辑。这里只应该有原始的数据库操作,供上层调用。

     综上,从上到下,QO-DTO-Entity, 从下到上 Entity-DTO-VO。切忌一个对象到底,牵一发而动全身,也忌返回不必要的字段,

  

浅析MVC中的数据流动

标签:视图   框架   数据   数据库操作   之间   创建   上层   entity   基本   

原文地址:https://www.cnblogs.com/julymaple/p/14811420.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!