ranki112
ranki112
采纳率66.7%
2020-11-03 00:26

理不清VO,BO,DTO,POJO和entity 的使用场景,代码里面要怎么设计呢

已采纳

在网上查了一圈都觉得这些概念好抽象啊,渣渣不能理解呀,能不能结合业务讲解下?

  1. 与数据库中的表字段一一对应的类,应该是DTO,还是entity呢?
  2. 前端传过来的参数有分页参数,或者其他没有字段 应该用那个模型呢?
  3. 传到mybatis数据处理层的对象应该是那个模型?
  4. 最后返回给前端的对象有些变量需要隐藏,比如用户对象中的password,这时需要用那个模型?
  5. 在业务方面一些对象往往还包含其他对象,比如订单对象里面需要添加一个商品对象的list
  6. 一些接口返回的对象有时很复杂,需要封装好几个对象,甚至要返回一些对象里没有的属性,目前我才用的笨方法是对象转json,然后再进行处理 有没有更好的设计思路呢?
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

4条回答

  • qq_36911145 封印di恶魔 5月前

    1.entity

    2.前端的入参用dto封装

    3.传到mybatis用entity或dto都行

    4.返回给前端用vo封装

    5.看你用于入参还是出参,入参就dto,出参就vo

    6.投机取巧的方法是用json会方便点,出于代码规范最好是封成vo,虽然比较麻烦

    点赞 1 评论 复制链接分享
  • qq_42235984 _YuLF 5月前

    领域模型命名规约

    1) 数据对象:xxxDO,xxx 即为数据表名。

    2) 数据传输对象:xxxDTO,xxx 为业务领域相关的名称。

    3) 展示对象:xxxVO,xxx 一般为网页名称。

    4) POJO 是 DO/DTO/BO/VO 的统称,禁止命名成 xxxPOJO。

    点赞 评论 复制链接分享
  • qq_20906903 C&Z 5月前

    POJO(Plain Ordinary Java Object)即普通Java类,具有一部分getter/setter方法的那种类就可以称作POJO。POJO可以看着是VO、BO、DTO、entity的抽象总称

    VO:

    VO(value Object)值传递对象,通常这类对象是用于页面和后端之间传递数据。对象中的字段跟页面所需字段一一对应。

    BO:

    BO(business Object)业务对象,可以拥有数据对应的数据关系,也可以对数据进行加工使之符合业务需要,此时的BO已经不是简单的POJO,已成为一个具有业务使能的对象

    DTO:

    DTO(Data Transmission Object) 数据传入对象,用户服务之间进行数据传输,一般是两个内部服务之间的数据传输

    entity

    entity此类对象一般是用于跟数据库表进行一一对应

    点赞 评论 复制链接分享
  • END_Loving 奈何桥头丶你倾城一笑 5月前

    这个看个人吧,我们一般用entity或者pojo做和数据库表对应的类,用vo数据是给前端展示的,bo数据是自己后台做业务逻辑处理,其他dto用的挺少的。

    点赞 评论 复制链接分享