1、PO(persistant object)持久化对象
PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合。PO中不应该包含任何对数据库的操作
2、DO(Domain Object)领域对象
就是从显示世界中抽象出来的有形或无形的业务实体
3、TO(Transfer Object)数据传输对象
不同的应用程序之间的传输对象,比如微服务之间数据传递时的数据对象
4、DTO(Data Transfer Object)数据传输对象
这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但是这里,泛指用于展示层与服务层之间的数据传输对象
5、VO(value object)值对象
通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要。用new关键字创建,用于GC回收的。
也可以叫视图对象:用来接收请求,将请求的数据封装,业务层处理完成后,再响应出去,而这些响应数据往往是一些自定义信息,不是我们整个实体类的完整数据。比如一些用户信息,响应的时候可能没有密码,要去掉一些其他字段等等,而且不同场景,接收封装的值也不一样
6、BO(bussiness object)业务对象
从业务模型的角度看,见UML原件领域模型的领域对象。封装业务逻辑的Java对象,通过调用DAO方法,结合PO,VO进行业务操作。业务对象只要作用是把业务逻辑封装成一个对象。这个对象可以包括一个或者多个其他的对象。比如一个简历,有教育经历、工作经历、社会关系等等。我们可以把教育经历对应一个PO,工作经历对应一个PO,社会关系对应一个PO。建立一个对简历的BO对象处理简历,每个BO包含这些PO。这样处理业务逻辑时,我们就可以针对BO去处理
7、POJO(plain ordinary java object)简单无规则java对象
传统意义的Java对象。就是说在一些Object / Relation Mapping 工具中,能够做到维护数据库表记录的 persisent object 完全是一个符合 java Bean 规范的纯 Java 对象,没有增加别的属性和方法。我的理解就是最基本的java bean,只有属性字段以及 setter和getter方法。POJO是DO/DTO/BO/VO的统称。
8、DAO(data access object)数据访问对象
是一个sun的一个标准 j2ee设计模式,这个模式中有个接口就是DAO,它负持久层的操作,为业务层提供接口。此对象用于访问数据库。通常和po结合使用,DAO中包含了各种数据库的操作方法。通过他的 方法,结合PO对数据库进行相关操作,夹在业务逻辑和数据库资源中间,配合VO,提供数据库的CRUD操作