领域对象(Domain Object)也被称为实体类,它代表了业务的状态,且贯穿展现层、业务层和持久层,并最终被持久化到数据库中,可细分为 4 中类型:
- PO(Persistent Object):持久化对象,表示持久层的数据结构(如数据库表);
- DO(Domain Object):领域对象,即业务实体对象;
- DTO(Data Transfer Object):数据传输对象,原来的目的是为 EJB 的分布式应用提供粗粒度的数据实体,以降低分布式调用的次数,提高分布式调用的性能,后来一般泛指用于展示层与服务层之间的数据传输对象,因此可以将 DTO 看成一个组合版的 DO;
- VO(View Object):视图对象,用户展示层视图状态对应的对象。
从分层角度来说,PO,DO/DTO,VO 分别属于持久层、服务层、和展现层。对于简单模块来说,有时 PO、DO 和 VO 并没有什么区别,这时就没有必要分别定义 DO 和 VO 了,直接复用 PO 即可。
参考:
Java术语(PO/POJO/VO/BO/DAO/DTO)