DTO(VO):也就是一般意义上的VO,封装后的对象。一般用于Web层—Service层间的数据传输入。
PO:也就是一般概念上的Domain Object,如hibernate 中的Entity.一般用于Service层--Dao层间的数据传输。
大多数web应用是没有VO的,直接PO贯穿 web-service-dao三层;有些应用,尤其企业级应用开发,会用VO。
如果用VO,那么就要涉及到PO和VO之间的转换,增加很多代码量,每层交互都要做对象转换,重复代码多, 增加研发和维护的人力成本。
但vo的作用有两种:
- 模块隔离:对外暴露,屏蔽内部实现。
- 分布式支持:用于异步传输;
1.VO是对前端需要展示数据的封装。VO可以包含PO的所有属性,也可以包含PO的部分属性,也可以包含PO没有的属性。VO以前端展示需要而进行属性的设计。
2.VO是数据传输类,PO是持久类,两个的作用不一样。
3.如果存在继承关系,那么他们俩某种意义上就是有关联的了父子关系了。这与分层思想不符,明显不合适。
文章推荐: