vo的作用有两种:
1.模块隔离:对外暴露,屏蔽内部实现。
2.分布式支持:用于异步传输;
换句话说:
如果不打算进行严格的模块化/组件化,又没有分布式场景,就不应该使用VO。
如果不打算进行严格的模块化/组件化,但存在部分分布式场景,比如lz所说的flex,那么针对部分进行VO开发即可;
此外,决定是否启用VO除了上述两个作用对应的场景外,另有如下两个因数:
1.PO是否是Rich Model?
2.开发人员是按分层分工还是按功能分工?
如果PO是贫血的,且是按分层分工开发的那么应该启用VO,因为,由于后台模型变化导致前台的调整会带来沟通协调的成本;
如果PO是Rich Model,且是按功能分工,那么就不应使用VO,VO和PO只会趋近,最终带来更多的维护成本,且在Rich Model下只变后台不变前台的比率较低,大部分情况下,功能的调整/改进会同时影响前后台。
另外一个部门的项目组做页面,那此时肯定会有VO,这个就不是技术要求了,而是避免两个部门扯皮
如果是一个项目组搞定的话,我个人认为是不需要VO的,VO这个东东太鸡肋了,弊大于利。