在Java工程里面,我们总会碰到各种不同的带有O的对象,

对于一个小白来说,经常会混淆这些对象的使用场景,所以在这里mark一下,让自己的代码更加规范,但这个也是Java被诟病的地方,不同的业务需要给它写各种各样的映射类。

PO:persistent object,持久对象。与数据库里表中的字段对应。PO是一些属性,以及set和get方法组成(使用强大的lombok插件更加方便)。一般情况下,一个表,对应一个PO。

VO:vlue object,又名:表现层对象,同时也可以认为是view object。用于业务层之间的数据传递,和PO一样也是仅仅包含数据。根据业务的需要,业务需要哪些字段,抽象出来的业务对象。对于页面上要展示字段,可以封装一个VO,将所需数据封装进去传给前端。

BO:bussiness object,业务对象。封装业务逻辑的 java 对象 , 通过调用 DAO 方法 , 结合 PO,VO 进行业务操作。 一个BO对象可以包括多个PO对象。譬如我们很多业务是需要进行连表操作的,那么这个业务所需要的字段可以封装成一个BO,这个BO又包含有多个PO所属的字段。

DAO:data access object,数据访问对象。此对象用于访问数据库。DAO 中包含了各种数据库的操作方法。通过它的方法 , 结合 PO 对数据库进行相关的操作。夹在业务逻辑与数据库资源中间。

DTO:data trasfer object,数据传输对象。主要用于远程调用等需要大量传输对象的地方,这个DTO对应上面所说的VO,对于后端来说是DTO,前端页面来说是VO。

POJO:plain ordinary java object) 简单无规则 java 对象 ,纯的传统意义的 java 对象。

最新文章

  1. WCF中常用的binding方式
  2. ArcMap中地图输出(Options)选项显示不完整
  3. java核心知识点学习----并发和并行的区别,进程和线程的区别,如何创建线程和线程的四种状态,什么是线程计时器
  4. 【Jquery回顾】解决$冲突的问题->自定义JQuery快捷键
  5. timeSeries db之:使用Metrics监控应用程序的性能 (zz)
  6. 【mysql】用navicat连接虚拟机mysql出现错误代码(10038)
  7. C语言之内存覆盖
  8. codeforces 671C Ultimate Weirdness of an Array 线段树+构造
  9. css3动画属性中的transition属性
  10. 【原创】Linux 增加系统调用
  11. 几个模式识别和计算机视觉相关的Matlab工具箱
  12. ABCpdf.NET中Rect,Bottom,Height的关系
  13. php 中的魔术方法-----“事件方法”
  14. 2017PHP程序员的进阶之路
  15. 将JavaScript转化为C#
  16. 自学Zabbix之路
  17. ES6/7 异步编程学习笔记
  18. 设计模式之中介者模式(Mediator )
  19. 08 BaseAdapter 和ListView总结
  20. ajax的4个字母分别是什么意思

热门文章

  1. [PHP学习教程 - 系统]001.引用文件(require & include)
  2. 01Java核心-冷门知识001-包
  3. ES6-Promise承诺
  4. Alpha冲刺 —— 5.6
  5. Rocket - util - MaskGen
  6. A barrier for Mobile Forensics - Samsung Secure Folder
  7. 从0开始探究vue-公共变量的管理
  8. Java实现 LeetCode 350 两个数组的交集 II(二)
  9. Java实现 蓝桥杯VIP 算法训练 方格取数
  10. Java实现 蓝桥杯VIP 算法训练 传球游戏