您的位置 首页 java

PO、VO、BO,JavaWeb中的这几个“O”,你都了解吗

喜欢的小伙伴动动小手,点点关注。私信发送“进阶”,获取更多 Java 进阶、架构的干货资料(《 Spring Cloud微服务实战 》《 Spring源码深度解析 》《 深入理解Apache Dubbo与实战 》《 一线架构师实践指南 》《 25大专题Java面试题手册 》《 Java面经 》……)。

和高手过招,专业知识不能少。这里解释一下PO、VO、BO、DTO、POJO、 DAO 这几个“O”都是什么意思,先来看个图吧!

PO、VO、BO,JavaWeb中的这几个“O”,你都了解吗

PO(Persistant Object)-持久对象

一个PO对应数据库表中的一条记录,等同于entity,一般PO仅用于表示数据,除了拥有get、set方法,没有操作数据的方法。

BO(business object)-业务对象

BO可以看成是PO的组合,例如:一个订单会有商品PO、购买人PO等,可以建立一个BO处理订单信息。这样处理业务逻辑时就可以针对BO来处理,对外就不会暴露数据表结构了。可以根据实际需要把业务处理方法放在BO里面。

VO(value object /view object)-值对象/表现层对象

主要对应前台页面显示的数据对象,例如常见的json。

DTO(Data Transfer Object)-数据传输对象

跨层级或者跨进程传输时用到的对象,例如微服务中服务于服务之间的调用传输的对象就是DTO。DTO和VO的比较相似但是还是有些差异,这些主要体现在设计上或对业务的解释上,例如:同一个gender属性,DTO中的值可能是“1”,VO为了更好理解则会转化为“男”。

DAO(data access object)- 数据访问对象

用来访问数据库,封装对数据库的增删改查操作,PO一起使用。

POJO(plain ordinary java object)-简单Java对象

可以理解为最常用到的Java Bean,PO、VO、DTO都是典型的POJO,它是一个中间对象可以转化为PO、DTO、VO。

不同类型的“O”在不同的架构层级中扮演不同的角色,每种“O”都有不同的用途,目的就是为了更好的封装自己的服务及有效的控制数据的传播。

微信公众号:程序员Mark Chou

喜欢的小伙伴动动小手,点点关注。私信发送“进阶”,获取更多Java进阶、架构的干货资料(《 Spring Cloud微服务实战 》《 Spring源码深度解析 》《 深入理解Apache Dubbo与实战 》《 一线架构师实践指南 》《 25大专题Java面试题手册 》《 Java面经 》……)。

文章来源:智云一二三科技

文章标题:PO、VO、BO,JavaWeb中的这几个“O”,你都了解吗

文章地址:https://www.zhihuclub.com/188649.shtml

关于作者: 智云科技

热门文章

评论已关闭

1条评论

  1. In6eOmhjgugBqkDQvhw4bE6k4lypAm56rVr8WJ3yvwMS7eI4HqGVjlDpzFOpFKD0xjNHXJjOJioKKneO6yKwzgmUKKNhLv8R1j8J1hHtVKQYQ1nQVF8

网站地图