PO,VO 之懒加载疑问

10-02-01 vic732
         

各位大侠,你们好:

现在有一个这样的困惑 ,我们的程序中有PO,VO两种对象 ,PO是model 层中,和数据库的对应关系比较强,具备懒加载的能力。但是基于某些考虑,在传递给表现层的时候,PO是被转换成 VO 进行传递的,出于习惯的考虑,我觉得获取相应的信息,都是通过VO.getXXX() 方法进行获取的,这时候遇到问题了,VO 不具备懒加载的功能!!! 针对这种面向对像很强的VO设计 ,只能一次把所有内容都加在进来。

目前,我们采取的方法是,将VO拆散,在需要的时候通过调用服务的方式及时获取,这样做的坏处就是从展示层看来 VO 变的很多,并且之间的关联意义没有体现在对象的定义上,而是体现在文档中,很别扭!!

各位大侠是怎样解决这个问题的?望不吝赐教

         

banq
2010-02-01 16:01

2010年02月01日 15:52 "vic732"的内容
这样做的坏处就是从展示层看来 VO 变的很多

我的经验是将VO和PO合并为Domain Model,展示层可直接对Domain Model对象进行访问,而Domain Model对象使用了Domain Events实现懒加载了。具体代码可参考JiveJdon中标签功能。

http://www.jdon.com/jivejdon/tags中标签有多少人关注数字是通过异步AJAX+懒加载方式获得。

按照你这个案例,就是可能用PO替代VO。。。

或者,在VO中加入类似Domain Events这样事件,需要值时从PO中获取。

[该贴被banq于2010-02-01 16:03修改过]

cmzx3444
2010-02-02 14:00

Domain Event我不大明白,

他的实质是不是利用代理模式 在调用Domain 对象的时候促发 相应的方法来完成异步的啊?

banq
2010-02-02 14:04

楼上正解。