POJO PO BO DO DTO VO 区别与联系

POJO PO BO DO DTO VO


概述

缩写全称中文功能说明
POJOplain ordinary java object无规则简单java对象中间对象,与其他对象转换
POpersistent object持久对象数据对象对应数据库中的entity
BObusiness object业务对象封装业务逻辑对象
VOvalue object / view object表现层对象封装视图层对象
DTOdata transfer object数据传输对象跨进程或远程传输
DOdomain object领域对象从现实世界中抽象出来的有形或无形的业务实体
DAOdata access object数据访问对象封装对数据库访问对象

问题

  • 为什么项目中要存在多种对象,多种对象直接需要相互转换,是否无用?
    • 举例:数据插入操作
      • HTTP:
        • (Controller 层 )VO 对象 --> (Service 层) BO 对象 --> (DAO 层) PO 对象 --> DAO 对象
      • RPC :
        • (RPC 接口)DTO 对象 --> --> (Service 层) BO 对象 --> (DAO 层) PO 对象 --> DAO 对象
    • 回答:
      • 世界上有大狗(可以看家护院)的存在也有小狗存在的必要,没有一种事务的存在是没有理由的
      • 代码中不同的层次需要使用不同的对象,使用不同的对象是为了更好的理解业务及解决问题
        • 举例:
          • PO / DO 对象通常对应数据表实体映射对象;如果没有BO对象,此时业务需求需要将时间格式化后展示,需要在PO类中增加属性,但增加的属性却不是表中应有的字段,使PO类的含义发生了变化
          • 如设计活动,活动实体是一张表,活动页面样式、活动优惠等等又是一张表,在将数据返给前端时,前端不需要知道后端是几张表的实现,只需要知道解析这个对象中的相关属性即可;此时需要BO对象来中转,BO对象对应多个PO对象
      • 有这种疑问通常是BO与PO对象的属性完全没有区别,此时需要考虑程序业务逻辑,是否需要将查询结果全部返回给调用方

参考资料

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值