POJO(Plain Ordinary Java Object)简单的Java对象。它指的是:那些没有继承任何类、也没有实现任何接口,更没有被其它框架侵入的java对象。

POJO的所有属性都是私有的,对外提供只提供的setget方法,并且可以被序列化。DO/DTO/BO/VO都属于POJO

常用的web 应用分层格式:

7906797-4c1a0b0cb533792d

VO( View Object)

显示层对象,通常是Web向模板渲染引擎层传输的对象。

DTO( Data Transfer Object)

数据传输对象,Service或Manager向外传输的对象。

表里面有十几个字段:id,name,gender(M/F),age,conmpanyId(如001)…

页面需要展示四个字段:name,gender(男/女),age,conmpanyName(如今日头条股份有限公司)。

DTO由此产生,一是能提高数据传输的速度(减少了传输字段),二能隐藏后端表结构。

BO( Business Object)

业务对象。 由Service层输出的封装业务逻辑的对象。主要作用是把业务逻辑封装为一个对象。这个对象可以包括一个或多个其它的对象。形象描述为一个对象的形为和动作,当然也有涉及到基它对象的一些行为和动作。

DO(Domain Object)

领域对象,就是从现实世界中抽象出来的有形或无形的业务实体。

业务层DTO会转成 BO或者DO.

PO(Persistant Object )

用于表示数据库中的一条记录映射成的 java 对象。PO 仅仅用于表示数据,没有任何数据操作。通常遵守 Java Bean 的规范,拥有 getter/setter 方法。

DAO(Data Access Object)

数据访问对象。用于表示一个数据访问对象。使用 DAO 访问数据库,包括插入、更新、删除、查询等操作,与 PO 一起使用。DAO 一般在持久层,完全封装数据库操作,对外暴露的方法使得上层应用不需要关注数据库相关的任何信息。

eo3vm5h8y4

Ref

https://en.wikipedia.org/wiki/Plain_old_Java_object

https://blog.csdn.net/chenchunlin526/article/details/69939337

https://cloud.tencent.com/developer/article/1658523