领域模型的领域对象(也就是我们所说的实体类)可以细分为4种类型:PO,DO,DTO,VO。
PO(persistent object):持久化对象,表示持久层的数据结构(如数据库表),通常我们dao层所实例化的对象。
DO(domain object) :业务实体对象,通常我们service所实例化的对象。
DTO(domain transfer object)数据传输对象,原来的目的是为EJB的分布式应用提供的粗粒度的数据实体,以降低分布式调用的次数,提高分布式调用的性能,后来一般用来泛指展示层和服务层之间的数据传输对象,因此,DTO可以看作成一个组合版的DO。
VO(view object):视图对象,用于展示层视图状态的对象。
从分层的角度来说,PO,DO/DTO,VO分别属于持久层,业务层(服务层)和表现层(展现层)。对于简单模块来说,又是PO,DO,VO没什么区别,这时候没必要定义DO,VO,直接复用PO即可。
ps:不了解EJB的同学可以看看这篇文章http://blog.youkuaiyun.com/han_yankun2009/article/details/22784559