呵呵,看了楼上各位的讨论,唉,不得不发几句话了!
PO是什么,VO是什么,FormBean又是什么?如果不理解他们的作用,不了解他们的概念,那么真像楼上一位朋友所做的一个所谓的model对象从头到尾,极其失败的设计了。
PO是持久化对象,它只是将物理数据实体的一种对象表示,为什么需要它?因为它可以简化我们对于物理实体的了解和耦合,简单地讲,可以简化对象的数据转换为物理数据的编程。VO是什么?它是值对象,准确地讲,它是业务对象,是生活在业务层的,是业务逻辑需要了解,需要使用的,再简单地讲,它是概念模型转换得到的。FormBean又是什么?它只是HTML表单的封装,是为了在控制层弱化request中存储数据的作用,将request的get方法转变为对象的存取值。
理清了上述概念,好,我们就开始讨论,为什么需要它们,为什么不需要它们。首先说PO和VO吧,它们的关系应该是相互独立的,一个VO可以只是PO的部分,也可以是多个PO构成,同样也可以等同于一个PO(当然我是指他们的属性)。正因为这样,PO独立出来,数据持久层也就独立出来了,它不会受到任何业务的干涉。又正因为这样,业务逻辑层也独立开来,它不会受到数据持久层的影响,业务层关心的只是业务逻辑的处理,至于怎么存怎么读交给别人吧!不过,另外一点,如果我们没有使用数据持久层,或者说没有使用hibernate,那么PO和VO也可以是同一个东西,虽然这并不好。其次,让我们看看FormBean和VO,如果简单地讲,我们是可以不需要FormBean的,它只是struts带来的一部分,而VO是无论如何不能舍弃的。如果让FormBean直接到业务层(它本来应该生活在控制层),那么会带来什么?View和Model就出现了强耦合,如果想改一下view的表示,整个业务逻辑都得改,恐怖的事情啊!
这些对象概念的出现其实就是体现了一种层的思维,也是体现了一种框架的思维,在层与层之间我们需要什么?我们应该怎么通信,其实大家认真地用笔画上几个图就可以知道了。做web应用尤其是企业应用,切忌像楼上某些朋友说的,一个东东从头到尾,那是非常低劣和错误的设计。我们不要单纯地就为了某些对象去争论什么,它们更多的只是思维。这样的思维给我们带来了哪些好处,不言自明,当然,我们也不得不否认,我们因此失去了某些东西,比如局部的性能或者繁琐的代码和调用过程,只是自己衡量一下,它是否值得。
分享到:
相关推荐
======================= 步骤: 1:配置hibernate,生成po和映射文件 ok 2:制作dao,测试 ok 3:制作service,测试 ok 4:加入Spring IoC,测试 ok 5:加入AOP,测试 ok 6:加入Struts,...
PO是持久层的数据表示,在特定情况下,例如Hibernate中,他可以取代VO出现在业务层,但是不管PO还是VO都必须限制在业务层内使用,最多到达Web层的Control,绝不能被扩散到View去。JDO1.x还不能像Hibernate功能这样...
原生方式,po有xml文件,实现dept,emp的CRUD,带有sql文件。有分页实现,JSON传值。
xiangboboweb自动化基于PO模式+unittest+HTMLTestRunner+发送邮件xiangbobo
Java中 PO VO BO DTO DAO 和 POJO 关系图
关于VO、PO的理解——java的(PO,VO,TO,BO,DAO,POJO)解释
通过参考和引用传智播客的免费教程,将springmvc4.1.6与hibernate4.3.10提供的JPA实现整合,使用mysql5.6.25,在MyEclipse2014中测试通过。可以作为web开发的基础框架使用。 使用说明: 1.需要安装mysql,并创建名为...
一款自动生成POVO 的工具,双击即可 运行,默认配置文件:lib/defaultconfig.properties
po与vo区别.docpo与vo区别.docpo与vo区别.doc
介绍vo,bo,po的区别。看其他网站收集的资料。
* 数据持久层使用SpringBoot自带的Hibernate来维护PO(Persistent Object持久化对象),这里使用Hibernate的原因在于其三种对象状态(持久态、游离态、分割态)便于持久化对象的增删改查等一系列操作,取代了jdbc的...
简单的vopo转换功能及依赖jar
* 数据持久层使用SpringBoot自带的Hibernate来维护PO(Persistent Object持久化对象),这里使用Hibernate的原因在于其三种对象状态(持久态、游离态、分割态)便于持久化对象的增删改查等一系列操作,取代了jdbc的...
最新SSH(springmvc4.0+spring4.0+hibernate4.3.4)全注解整合增删改查示例 C3PO数据库连接池,代理事务 初来乍到,不到位的地方还请大家多给给宝贵的意见,不明白的地方随时Q我 21990226,错误的地方狠狠指出 供稿-...
用struts2.0 实现的登陆,使用po、dao、action、DB
NULL 博文链接:https://yaofeng911.iteye.com/blog/1061070
自身关联的添加、检索及PO到VO得封装、转换
建立Web工程 * 导入需要的jar包 db:连接数据库的驱动包 hibernate:使用hibernate的jar包 jstl:java的标准标签库 junit:测试用到的jar包... hibernate.cfg.xml:hibernate的配置文件 struts.xml:struts2的配置文件
在原来的基础上增加了对大系数的处理。能够配平系数在10000以内的化学方程式。 input chemical expr: NaClO3 +FeCl2 + HCl = NaCl + FeCl3 +H2O 1 6 6 1 6 3 input chemical expr: KMnO4+FeSO4+H2SO4=Fe2(SO4)3+MnSO...