关于VO与PO的问题

08-08-19 yongbuyanbai
看了许多关于VO与PO的讨论,VO是针对表示层显示数据的载体,而PO相当在后台业务逻辑中传递的数据BEAN的载体,在控制层将VO转换为PO,常常利用apache commons的BEANUTILS,如果在项目中有如下VO和PO

   class PO
   {
     private UserPo;
   }
 class VO
   {
     private UserVo;
   }

<p>

对于这种情况,利用beanutils的方式需要类型匹配,而userpo与uservo是不匹配的肯定报错,所以这种情况就很烦琐,不知道如何解决,请banq指导!而且对于VO的使用是否是必要的也予以怀疑,直接用PO在层间传递是否可以呢?

         

2
freebox
2008-08-19 17:10
UserPo和UserVo复杂了吧?实在需要就让它俩都实现相同的接口。

yongbuyanbai
2008-08-19 23:46
如果不用VO是否妥当,我看有的人说直接就用PO在各层传输就可以!各有各的说法,但是这种方式好象是加强了耦合,但是如果有VO又太复杂,到底应该如何处理呢?

freebox
2008-08-20 08:16
我是看这俩对象的状态是不是和领域对象一至,一至的话就都用领域对象来表达,不一至比如说VO是由多个领域对象组合成的,就另弄一个。

yongbuyanbai
2008-08-20 09:44
在我这个项目中基本是一样的,如果按照您说的混合了多个领域对象的话,便会产生这样一个混合的VO然后在控制层将其组装成多个领域对象向下传,然后将获得的多个数据载体的PO传递给VO,在页面显示,那么不同字段如何进行拷贝,用APACHE BEANUTILS的只能是类型相同的,所以拷贝很烦琐,不知道有什么好的工具类可以应用这个方面!我记得BANQ好象说过将PO与VO尽量的一致起来,这样的传输是没有交叉的不复杂,直线传输,很清晰!请谈谈您的观点,如果BANQ看见了也请把您的想法讲讲,谢谢了哦!

猜你喜欢
2Go 1 2 下一页