Java中数据的封装会被命名为各种O,常见的有PO、VO、DTO、BO、POJO。
1.PO
PO是Persistant Object的缩写,即持久化对象,通常对应数据模型,可以简单的理解为一个PO实例对应数据库中的一条记录,操作该实例即可以操作数据库中对应的数据。PO只封装数据库中对应的记录,不应该包含对数据库的操作。
2.VO
VO是Value Object的缩写,即值对象(也可以理解为View Object视图对象),通常用于封装页面上要展示的数据,在视图层传递,可以由PO转换而来,但是不能包含数据操作。
3.DTO
DTO是Data Transfer Object的缩写,即数据传输对象,通常用于封装服务与服务之间、分层与分层之间要传输的数据,不应该包含业务逻辑,对要传输的数据起到承载的作用。
4.BO
BO是Business Object的缩写,即业务对象,通常对应业务模型,封装业务数据,在业务服务层使用。BO中可以包含多个PO,封装业务数据。
5.POJO
POJO是Plain Ordinary Java Object的缩写,即简单Java对象,一个只有属性及属性setter和getter方法的基本JavaBean,是一个中间对象,可以用于多种用途,用于数据传输它就是DTO,用于数据展示它就是VO。
总结:对于各种O的使用,需要根据所在层、用途、及场合来选择,设计这些不同Object的目的就是为了区分不同应用场景下数据意义的不同,彼此之间隔离开,避免思路上的混杂,但是也不可过度的为了区分而使用,这样会造成思绪上的拥堵。