在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 对象。