zoukankan      html  css  js  c++  java
  • 浅析MVC中的数据流动

      我们知道传统的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。切忌一个对象到底,牵一发而动全身,也忌返回不必要的字段,

      

  • 相关阅读:
    软件测试课堂练习
    JSP第一次作业
    安卓第六次作业
    安卓第五次作业
    第四次安卓作业
    JSP第四周
    软件测试课堂练习3.4
    Android数据库表
    Android购物菜单
    Android增删改查
  • 原文地址:https://www.cnblogs.com/julymaple/p/14811420.html
Copyright © 2011-2022 走看看