Java实习日记(6)

Question :常用的Java对象概念

PO(Persistant Object),持久对象,用于表示数据库中的一条记录映射成Java对象,一般数据表有多少字段,PO就会有多少字段。PO仅用于表示数据,没有任何数据操作,完全是一个遵守Java Bean规范的纯Java对象,拥有getter/setter方法。


VO(Value Object),值对象,通常用于业务层之间传递数据,和PO一样也是仅仅包含数据而已。例如后台与前端进行交互,可以使用VO只包含前段需要的字段,这样可以减少传输数据量大小和保护数据库结构不被外泄。VO可以根据具体业务需求设计即可,它同样遵守Java Bean规范。


DTO(Data Transfer Object),数据传输对象,用于不通服务间传输数据。泛指表现层和服务层之间数据传递对象;


BO(Business Object),业务对象,用于表示封装业务逻辑的Java对象。常位于业务层,提供基本业务单元的操作。通过调用DAO方法,结合PO、VO进行业务操作。可以参考网上的一个例子来理解:
例如一个简历包含教育经历、工作经历、社会关系三部分;我们可以把教育经历对应一个PO、工作经历对应一个PO、社会关系对应一个PO;然后创建一个对应简历的BO对象,这个BO中包含以上三个PO;这样一来,我们在处理业务逻辑时就可以针对BO去处理。


POJO(Plain Ordinary Java Object),简单Java对象,就是普通的JavaBeans,上面介绍的PO、VO、DTO都是典型的POJO。
一个POJO持久化后就是PO;直接用POJO传递就是DTO;直接用来对应表示层就是VO;


DAO(Data Access Object),数据访问对象,用于访问数据库,包括增、删、改、查等操作,与PO一起使用。DAO一般在持久层,完全封装数据库操作,对外暴露方法,使上层应用无需关注数据库相关的信息侧偶作。


例如:
数据表:username、address、password
PO :username、address、password
DTO:username、address
VO: username、address
DAO:数据表的增删改查


参考链接:
https://blog.csdn.net/gaoyunpeng/article/details/2093211
http://www.cnblogs.com/lyjin/p/6389349.html
https://www.zhihu.com/question/39651928

猜你喜欢

转载自blog.csdn.net/u012187452/article/details/80086873
今日推荐