转java随笔之VO,DTO,DO,PO概念浅认知
看标题我是浅认知,说错或说漏可纠正,发博文就是想加深下自己的印象,很少发,感谢博友的支持和鼓励
VO(View Object):视图对象,展示层所需要的数据
DTO(Data Transfer Object):数据传输对象,服务层和展示层之间传输的数据
DO(Domain Object):领域对象,领域层的实体
PO(Persistent Object):持久化对象,与数据库一一对应
我对各个对象的简单理解:
VO,DTO:通常情况下客户端唯一可用DTO代替VO,但是 多个客户端要求展示的内容可能不同,例如DTO返回的sex,A客户端可能要求0显示为未知,1显示为男性,2显示为女性;B客户端要求0显示为私密,1显示为帅哥,2显示美女;这就要求返回不同的VO;
DTO,DO:DO的某些属性可能不便对外展示,例如密码等,所以不能直接传输给展示层也避免展示层直接依赖领域层造成不必要的耦合,可通过不同的DTO过滤一些不需要展示的属性来达到不同的需求
DO,PO:PO与数据库字段属性一一对应,大多只有set,get方法,DO领域对象,包含的属性可能不需要持久化,PO存在的持久化属性在DO中可能也不需要