转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中可能也不需要
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?