对象分层架构图
什么是VO?
VO(Value Object)即:值对象
VO就是展示用的数据,可以是网页、客户端、或者APP等等,只要是让人View的。VO的主要存在形式就是js里面的对象(也可以简单理解成json)。
什么是DTO?
DTO(Data Transfer Object)即:数据传输对象
1、在服务间的调用中,传输的数据对象;
2、用在需要跨进程、或远程传输、或服务间调用时,一般不包含业务逻辑。
VO和DTO的区别
VO和DTO的区别:简单理解就是相同的东西不同的场景不同的用途,VO用于展示场景,DTO用于调用场景;接口传入使用DTO对象,接口返回使用VO对象;
什么是PO?
PO(Persistent Object)即:持久对象
1、用来存储数据库提取的数据,对应数据表记录;
2、只存储数据,不包含除了Get、Set之外的任何数据操作;
3、在数据库层中,获取的数据库数据存储到PO中,然后转为DTO返回到服务层中。
什么是BO?
BO(Bussines Object)业务层对象
1、主要在服务内部使用的业务对象;
2、可以包含多个对象,可以用于对象的聚合操作;
3、在服务层服务中,由DTO转成BO然后进行业务处理后,转成DTO返回到接口层。
PO和BO的区别
PO和BO的区别:BO就是PO的组合,一般会将持久逻辑封装成一个业务对象对象。通常需要将BO转化成PO,才能进行数据的持久化,反之,从DB中得到的PO,需要转化成BO才能在业务层使用。
例子1:教育经历对应一个PO1,工作经历对应一个PO2,社会关系对应一个PO3,建立一个对应简历的BO对象处理简历,每个BO包含这些PO1、PO2和PO3。
例子2:PO1是交易记录,PO2是登录记录,PO3是商品浏览记录,PO4是添加购物车记录,PO5是搜索记录,BO是个人网站行为对象集合。
什么是DAO?
DAO(Data Access Object)数据访问对象
1 .主要用来封装对DB的访问(CRUD操作);
2 .通过接收Business层的数据,把POJO持久化为PO。
什么是POJO?
POJO(Plain Ordinary Java Object)无规则简单Java对象
这个中间对象,可以转化为PO、DTO、VO。
参考链接
https://www.jianshu.com/p/55cb67cd4110
https://blog.csdn.net/qq_45151158/article/details/123783227
http://blog.itpub.net/70001864/viewspace-2793605/
https://cloud.tencent.com/developer/news/309461