区分PO、VO、 BO、 DTO、 POJO

发布时间 2023-05-26 13:49:24作者: 阳冬园
 
分层领域模型规约:
  • DO(Data Object):此结构与数据库表结构一一对应,通过DTO向上传输数据源对象。
  • DTO(Data Transfer Object):数据传输对象,Service 或 Manager 向外传输的对象。
  • BO(Business Object):业务对象,由Service 层输出的封装业务逻辑的对象。
  • AO(Application Object):应用对象,在Web 和 Service 层之间抽象的复用对象模型。
  • VO(Value Object):显示层对象,通常是Web向模板渲染引擎层传输的对象。
领域模型命名规范:
  • 数据对象:xxxDO,xxx即为数据表名;
  • 数据传输对象:xxxDTO,xxx为业务领域相关的名称;
  • 展示对象:xxxVo,xxx为网页名称;
  • POJO是DO/DTO/BO/VO的统称,禁止命名成xxxPOJO。
 
  • PO(Persistant Object),持久对象
  可以看成是与数据库中的表相映射的java对象。使用Hibernate生成PO是不错的选择。
  • VO(Value Object),值对象
  通常用于业务层之间的数据传递,和PO一样也仅仅包数据而已。但应该是抽象出的业务对象,不要求必须和表对应,根据业务需要。PO只能在数据层,VO用在商业逻辑层和表示层。
  • DTO(Data Transfer Object),数据访问对象接口
  与数据库打交道,夹在业务逻辑与数据库资源中间。
  • BO(Business Object),业务对象层
  表示应用程序领域内"事物"的所有实体内。这些实体类驻留在服务器上,并利用服务类来协助完成他们的职责。
  • DTO(Data Transfer Object),数据传输对象
  只要用于远程调用等需要大量传输对象的地方。例如某张表有100个字段,那么对应的PO就有100个属性。但业务需求是在
界面上显示其中10个字段即可,客户端采用Web Service来获取数据,就没有必要把整个PO对象传递到客户端,这时就可以把需要的10个字段通过DTO传递到客户端。如果用这个对象来对应界面显示,就可以转换为VO。
  • POJO(Plain Old Java Objects),简单的Java对象
  实际就是普通的JavaBeans,使用POJO是为了避免与EJB混淆。