该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2011-04-24
最后修改:2011-04-24
vo和po的区别就不多说了。
vo的作用有两种: 1.模块隔离:对外暴露,屏蔽内部实现。 2.分布式支持:用于异步传输; 换句话说: 如果不打算进行严格的模块化/组件化,又没有分布式场景,就不应该使用VO。 如果不打算进行严格的模块化/组件化,但存在部分分布式场景,比如lz所说的flex,那么针对部分进行VO开发即可; 此外,决定是否启用VO除了上述两个作用对应的场景外,另有如下两个因数: 1.PO是否是Rich Model? 2.开发人员是按分层分工还是按功能分工? 如果PO是贫血的,且是按分层分工开发的那么应该启用VO,因为,由于后台模型变化导致前台的调整会带来沟通协调的成本; 如果PO是Rich Model,且是按功能分工,那么就不应使用VO,VO和PO只会趋近,最终带来更多的维护成本,且在Rich Model下只变后台不变前台的比率较低,大部分情况下,功能的调整/改进会同时影响前后台。 |
|
返回顶楼 | |
发表时间:2011-04-24
hsiss 写道 dto直接用map代替不就行了吗,为了架构而架构
你根本就没弄清楚为什么用DTO模式。 |
|
返回顶楼 | |
发表时间:2011-04-24
kimmking 写道 虽然话题太老了。
但是说的还是在理,投个良。~ 话题是五六年前讨论过的。但是前辈们对于为什么要使用,什么时候使用DTO并没有说得特别清楚,也没有实例说明。他们只是在互喷。 |
|
返回顶楼 | |
发表时间:2011-04-24
最后修改:2011-04-24
yimlin 写道 vo和po的区别就不多说了。
vo的作用有两种: 1.模块隔离:对外暴露,屏蔽内部实现。 2.分布式支持:用于异步传输; 换句话说: 如果不打算进行严格的模块化/组件化,又没有分布式场景,就不应该使用VO。 如果不打算进行严格的模块化/组件化,但存在部分分布式场景,比如lz所说的flex,那么针对部分进行VO开发即可; 此外,决定是否启用VO除了上述两个作用对应的场景外,另有如下两个因数: 1.PO是否是Rich Model? 2.开发人员是按分层分工还是按功能分工? 如果PO是贫血的,且是按分层分工开发的那么应该启用VO,因为,由于后台模型变化导致前台的调整会带来沟通协调的成本; 如果PO是Rich Model,且是按功能分工,那么就不应使用VO,VO和PO只会趋近,最终带来更多的维护成本,且在Rich Model下只变后台不变前台的比率较低,大部分情况下,功能的调整/改进会同时影响前后台。 和我的想法完全一样。而且总结得比我简要。我们以后是要做模块化的,所以VO对于以后的扩展很有必要。同时以后有可能做web层和应用层的分布式。不是Rich Model,功能是贫血模型。 |
|
返回顶楼 | |
发表时间:2011-04-25
其实有的时候不是技术决定的,而是由部门决定的
比如我们现在,我们这个项目做后台逻辑,以及业务逻辑 另外一个部门的项目组做页面,那此时肯定会有VO,这个就不是技术要求了,而是避免两个部门扯皮 如果是一个项目组搞定的话,我个人认为是不需要VO的,VO这个东东太鸡肋了,弊大于利。 |
|
返回顶楼 | |
发表时间:2011-04-25
yimlin 写道 vo和po的区别就不多说了。
vo的作用有两种: 1.模块隔离:对外暴露,屏蔽内部实现。 2.分布式支持:用于异步传输; 换句话说: 如果不打算进行严格的模块化/组件化,又没有分布式场景,就不应该使用VO。 如果不打算进行严格的模块化/组件化,但存在部分分布式场景,比如lz所说的flex,那么针对部分进行VO开发即可; 此外,决定是否启用VO除了上述两个作用对应的场景外,另有如下两个因数: 1.PO是否是Rich Model? 2.开发人员是按分层分工还是按功能分工? 如果PO是贫血的,且是按分层分工开发的那么应该启用VO,因为,由于后台模型变化导致前台的调整会带来沟通协调的成本; 如果PO是Rich Model,且是按功能分工,那么就不应使用VO,VO和PO只会趋近,最终带来更多的维护成本,且在Rich Model下只变后台不变前台的比率较低,大部分情况下,功能的调整/改进会同时影响前后台。 我个人也觉得VO应该视情况而定,没必要强制开发,有需求的时候再写就可以! |
|
返回顶楼 | |
发表时间:2011-04-25
明确了概念
|
|
返回顶楼 | |
发表时间:2011-04-25
互联网的时代了,做web应用的还在纠结于VO/PO/DTO/的概念,真悲催……
|
|
返回顶楼 | |
发表时间:2011-04-25
jansel 写道 其实有的时候不是技术决定的,而是由部门决定的
比如我们现在,我们这个项目做后台逻辑,以及业务逻辑 另外一个部门的项目组做页面,那此时肯定会有VO,这个就不是技术要求了,而是避免两个部门扯皮 如果是一个项目组搞定的话,我个人认为是不需要VO的,VO这个东东太鸡肋了,弊大于利。 这个就是我说的分层分团队开发一定是需要vo做为接口数据的。 |
|
返回顶楼 | |
发表时间:2011-04-25
分离的北极熊 写道 互联网的时代了,做web应用的还在纠结于VO/PO/DTO/的概念,真悲催……
愿听大牛高见。不管什么年代了,总是会有后人加入到开发行业来,人都是一下子懂所有的事情的吗?悲催什么,你连自已的观点都没有。 |
|
返回顶楼 | |