`
梦里天涯路
  • 浏览: 20642 次
  • 性别: Icon_minigender_1
  • 来自: 昆明
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

答复: 再谈关于po,vo在struts+hibernate中的使用(讨论)

阅读更多
呵呵,看了楼上各位的讨论,唉,不得不发几句话了!
   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应用尤其是企业应用,切忌像楼上某些朋友说的,一个东东从头到尾,那是非常低劣和错误的设计。我们不要单纯地就为了某些对象去争论什么,它们更多的只是思维。这样的思维给我们带来了哪些好处,不言自明,当然,我们也不得不否认,我们因此失去了某些东西,比如局部的性能或者繁琐的代码和调用过程,只是自己衡量一下,它是否值得。
分享到:
评论

相关推荐

    Struts+Hibernate+Spring 最优配置

    标题:"Struts+Hibernate+Spring 最优配置" 描述:"非常好的,有空多学习学习" 标签:"Struts,Hibernate,Spring" 部分内容:周建国leo821031@gmail.com Struts、Hibernate与Spring作为Java企业级应用开发的三大...

    J2EE架构数据表示:Struts+Hibernate

    在Hibernate中,有时 Persistent Object(PO)可以作为VO使用,尤其是在PO具有足够灵活性的情况下,如支持动态生成和独立于Session的状态管理。 持久层的数据表示是PO,它直接映射到数据库表,当数据库结构发生变化...

    SSH(Spring+Struts+Hibernate)

    在SSH框架中,数据的流动过程通常是这样的:JSP页面上的表单数据提交到Action,Action从ActionFormBean中获取数据,封装成VO(Value Object,值对象)或PO(Persistent Object,持久对象),然后调用Service层的方法...

    结合struts和hibernate谈J2EE架构的数据表示.doc

    Hibernate作为ORM(Object-Relational Mapping)工具,允许动态生成PO,并且支持PO的状态管理,使得PO在一定程度上可以替代VO。然而,这并不意味着PO应该跨越边界进入Web层。即使Hibernate提供了这样的便利,仍然...

    Struts、Spring、Hibernate&Ajax;学习笔记总结

    综上所述,Struts、Spring、Hibernate 和 Ajax 分别在 MVC 架构的不同层次中扮演着重要角色。Struts 作为控制器层,负责处理用户请求;Spring 提供了依赖管理和事务管理等服务;Hibernate 作为 ORM 工具,简化了数据...

    SSH详细简介

    Action接受用户的数据,Action将数据从Action中取出,封装成VO或PO,再调用业务层的Bean类,完成各种业务处理后再forward。而业务层Bean收到这个PO对象之后,会调用DAO接口方法,进行持久化操作。 SSH框架是由...

    SSH 项目框架搭建总结

    hibernate:使用hibernate的jar包 jstl:java的标准标签库 junit:测试用到的jar包 spring:使用spring的jar包 struts2:使用struts2的jar包 * 项目体系分层: cn.itcast.elec.containner:自定义的spring容器,...

    struts2 (对象.属性)注入

    此外,这种机制还为与其他框架(如Hibernate)的整合提供了便利,可以将Struts2的VO和Hibernate的PO(Persistent Object)进行整合,进一步提高代码的复用性和系统的整体性能。 综上所述,“对象.属性”注入是...

    浅谈Action+Service +Dao 功能

    在Struts + Spring + Hibernate的系统中,对象的调用流程是:JSP—Action—Service—DAO—Hibernate。数据的流向是:ActionFormBean接受用户的数据,Action将数据从ActionFormBean中取出,封装成VO或PO,再调用业务...

    程序员从初级到高级知识汇集

    除此之外,书中还涉及了如何自定义MyEclipse的编译目录,设置JAVA环境变量,以及PO、BO、VO、DTO、POJO、DAO的概念和它们在软件开发中的角色,这些都是Java开发中不可或缺的基础知识。 整体来看,这本书涵盖了从...

    haivDb4J2ee1.3

     1、能通过表名、列名、列类型、表和列的注释等信息,自动生成PO类、Hibernate、VO类、struts+spring+hibernate的配置文件、Jsp文件、使用说明等文档,以实现对单表的增、删、改、查的操作。生成的代码非常规范,...

    ssh 架构描述

    SSH架构是Java Web开发中广泛使用的一种经典架构,由Struts、Spring和Hibernate三个框架组成,分别负责Web层、业务层和服务层。下面将详细介绍这三个框架在SSH架构中的作用和相互关系。 1) Struts:Struts是MVC...

    Struts2 技术内幕读书笔记(1)

    在Struts2框架中,这个问题是通过配置Action映射来解决的,这样就可以根据不同的URL来调用不同的Java类来处理业务逻辑并返回处理结果。这种机制不仅提高了程序的灵活性,还使得Web应用能够更好地响应用户的需求。

    SSH架构下基于数据库的树状菜单的设计与实现.pdf

    本文主要讲解了 SSH 架构下基于数据库的树状菜单的设计与实现,涵盖了树状菜单的设计思想、PO 和 VO 的设计、Hibernate 映射文件的配置、Struts 控制器类的实现等方面。 一、树状菜单的设计思想 树状菜单是一种...

    EX快速开发一个功能.docx

    在EX快速开发一个功能的过程中,遵循的是典型的三层架构模式,包括数据访问层(DAO)、业务逻辑层(Service)以及表示层(Action)。以下是对每个步骤的详细解释: 1. **创建数据库表**:这是所有应用的基础,根据...

    Java项目使用小知识

    - 不同Action之间的方法调用,通常通过Action跳转来完成,可以配置`struts-config.xml`中的`<forward>`标签,或者在Action的`execute`方法中使用`response.sendRedirect()`。 6. **转发与重定向的区别** - **转发...

    HaivOra4J2ee工具提供图片

     本工具主要提供了以下功能:  1、能通过表名、列名、列类型、表和列的注释等信息,自动生成PO类、Hibernate、VO类、struts+spring+hibernate的配置文件、Jsp文件、使用说明等文档,以实现对单表的增、删、...

    SSH框架整合[总结].pdf

    在SSH框架整合中,数据流通常如下:用户在JSP页面上填写表单,数据通过ActionFormBean传递到Action,Action处理数据并创建VO(Value Object)或PO对象,然后调用Spring管理的Service。Service进一步调用DAO接口,DAO...

    SSH框架开发

    SSH框架,全称为Struts2、Spring和Hibernate的组合,是一种流行的企业级Java应用开发框架。这个框架的主要目的是为了简化Web应用程序的开发过程,通过各组件的协同工作,实现业务逻辑与视图、数据访问的高效分离。 ...

Global site tag (gtag.js) - Google Analytics