`
andy136566
  • 浏览: 293979 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

关于JAVA的PO与VO

阅读更多
我一直很矛盾:是否PO可以用在商业逻辑层,当作VO使用;还是将两者分开。在许多论坛上,这两者之争也很激烈。所以今天我打算把我的想法写下来。
          首先,java有几种对象(PO,VO,DAO,BO,POJO)  
         一、PO:persistant object 持久对象,可以看成是与数据库中的表相映射的java对象。使用Hibernate来生成PO是不错的选择。
          二、VO:value object值对象。通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.
      有一种观点就是:PO只能用在数据层,VO用在商业逻辑层和表示层。各层操作属于该层自己的数据对象,这样就可以降低各层之间的耦合,便于以后系统的维护和扩展。如果将PO用在各个层中就相当于我们使用全局变量,我们知道在OO设计非常不赞成使用全局变量。
       但是每次都得进行VO-PO的转换,也确实很烦。我觉得有时候也可以在某个商业逻辑或者表示层使用PO,此时在这个商业逻辑的过程中PO的状态是不发生变化的,比如显示一条商品详细信息的商业逻辑。
       在开发过的项目中,规模都很小,我一直都把PO当VO用,因为PO确实很方便,结合Hibernate的DAO,我使用JAVA的集合对象作为值传递的载体,当然Struts也是我的不二之选。
       我认为:在一些直观的,简单的,不易发生变化的,不需要涉及多个PO时,传递值还是使用PO好,这样可以减少大量的工作量(也就意味着减少bug,减少风险),也不需要担心未来的维护工作!

[转]
http://www.blogjava.net/xsm1034999/archive/2007/11/11/159706.html
分享到:
评论

相关推荐

    报餐小程序前后端开源代码-微信小程序

    报餐小程序前后端开源代码-微信小程序

    cmd脚本-bat批处理-模拟2K开机进度条.zip

    cmd脚本-bat批处理-模拟2K开机进度条.zip

    黑马程序员SpringCloudAlibaba视频教程文档,带目录

    黑马程序员视频文档,带目录 SpringCloudAlibaba视频教程,深入学习Java微服务开发(SpringCloud) https://www.bilibili.com/video/BV1R7

    基于python tensorflow2.3的果蔬识别系统源码+模型-基于卷积神经网络的果蔬识别系统

    基于python tensorflow2.3的果蔬识别系统源码+模型-基于卷积神经网络的果蔬识别系统,个人经导师指导并认可通过的高分设计项目,评审分98分,项目中的源码都是经过本地编译过可运行的,都经过严格调试,确保可以运行!主要针对计算机相关专业的正在做大作业、毕业设计的学生和需要项目实战练习的学习者,资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。 基于python tensorflow2.3的果蔬识别系统源码+模型-基于卷积神经网络的果蔬识别系统基于python tensorflow2.3的果蔬识别系统源码+模型-基于卷积神经网络的果蔬识别系统基于python tensorflow2.3的果蔬识别系统源码+模型-基于卷积神经网络的果蔬识别系统基于python tensorflow2.3的果蔬识别系统源码+模型-基于卷积神经网络的果蔬识别系统基于python tensorflow2.3的果蔬识别系统源码+模型-基于卷积神经网络的果蔬识别系统基于python tensorflow2.3的果蔬识别系统源码+模型-基于卷积神经网络的果蔬识别系统基于python tensorflow2.3的果蔬识别系统源码+模型-基于卷积神经网络的果蔬识别系统基于python tensorflow2.3的果蔬识别系统源码+模型-基于卷积神经网络的果蔬识别系统基于python tensorflow2.3的果蔬识别系统源码+模型-基于卷积神经网络的果蔬识别系统基于python tensorflow2.3的果蔬识别系统源码+模型-基于卷积神经网络的果蔬识别系统基于python tensorflow2.3的果蔬识别系统源码+模型-基于卷积神经网络的果蔬识别系统基于python tensorflow2.3的果蔬识别系统源码+模型-基于卷积神经

    cmd脚本-bat批处理-set命令特殊用法.zip

    cmd脚本-bat批处理-set命令特殊用法.zip

    cmd脚本-bat批处理-不显示扩展名.zip

    cmd脚本-bat批处理-不显示扩展名.zip

    cmd-bat-批处理-脚本-过滤敏感字符.zip

    cmd-bat-批处理-脚本-过滤敏感字符.zip

    ez.shx

    使用方法:拷贝到Auto CAD的Fonts下

    cmd-bat-批处理-脚本-简介.zip

    cmd-bat-批处理-脚本-简介.zip

    基于Opencv与Python结合的车牌识别系统(含源码及报告)适合期末大作业&课程设计

    基于Opencv与Python结合的车牌识别系统(含源码及报告)适合期末大作业&课程设计,个人经导师指导并认可通过的高分设计项目,评审分98分,项目中的源码都是经过本地编译过可运行的,都经过严格调试,确保可以运行!主要针对计算机相关专业的正在做大作业、毕业设计的学生和需要项目实战练习的学习者,资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。 基于Opencv与Python结合的车牌识别系统(含源码及报告)适合期末大作业&课程设计基于Opencv与Python结合的车牌识别系统(含源码及报告)适合期末大作业&课程设计基于Opencv与Python结合的车牌识别系统(含源码及报告)适合期末大作业&课程设计基于Opencv与Python结合的车牌识别系统(含源码及报告)适合期末大作业&课程设计基于Opencv与Python结合的车牌识别系统(含源码及报告)适合期末大作业&课程设计基于Opencv与Python结合的车牌识别系统(含源码及报告)适合期末大作业&课程设计基于Opencv与Python结合的车牌识别系统(含源码及报告)适合期末大作业&课程设计基于Opencv与Python结合的车牌识别系统(含源码及报告)适合期末大作业&课程设计基于Opencv与Python结合的车牌识别系统(含源码及报告)适合期末大作业&课程设计基于Opencv与Python结合的车牌识别系统(含源码及报告)适合期末大作业&课程设计基于Opencv与Python结合的车牌识别系统(含源码及报告)适合期末大作业&课程设计基于Opencv与Python结合的车牌识别系统(含源码及报告)适合期末大作业&课程设计基于Opencv与Python结合的车牌识别系统(含源码及报告)适合期末大作业&课程设计基于Opencv与Python结合的车牌识别系统(

    cmd-bat-批处理-脚本-readme.zip

    cmd-bat-批处理-脚本-readme.zip

    HZK2.SHX

    使用方法:拷贝到Auto CAD的Fonts下

    Linux学习与笔记记录

    Linux学习与笔记记录

    cmd-bat-批处理-脚本-sxs.exe 的查杀.zip

    cmd-bat-批处理-脚本-sxs.exe 的查杀.zip

    cmd脚本-bat批处理-把秒转换为天小时分秒的格式.zip

    cmd脚本-bat批处理-把秒转换为天小时分秒的格式.zip

    振动压路机振动轮.rar

    振动压路机振动轮.rar

    cmd-bat-批处理-脚本-删除快捷方式的箭头.zip

    cmd-bat-批处理-脚本-删除快捷方式的箭头.zip

    cmd脚本-bat批处理-查看工作组.zip

    cmd脚本-bat批处理-查看工作组.zip

    全国列车数据的Python数据分析及可视化期末大作业源码

    Python数据分析与可视化全国列车数据获取与可视化分析的期末大作业源码,经导师指导并认可通过,评审分98分。项目中的源码均可运行,经过严格调试确保无误!适合计算机相关专业学生及需要项目实战练习的学习者使用,难度适中,内容由助教老师审定过,满足学习和使用需求,可放心下载使用。。内容来源于网络分享,如有侵权请联系我删除。

    cmd-bat-批处理-脚本-Windows安全优化小助手.zip

    cmd-bat-批处理-脚本-Windows安全优化小助手.zip

Global site tag (gtag.js) - Google Analytics