java为什么要创建vo Java VO 是什么它的作用是什么好处是什么
老铁们,大家好,相信还有很多朋友对于java为什么要创建vo和Java VO 是什么它的作用是什么好处是什么的相关问题不太懂,没关系,今天就由我来为大家分享分享java为什么要创建vo以及Java VO 是什么它的作用是什么好处是什么的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!
Java VO 是什么它的作用是什么好处是什么
首先,java有几种对象(PO,VO,DAO,BO,POJO)
一、PO:persistant object持久对象,可以看成是与数据库中的表相映射的java对象。使用Hibernate来生成PO是不错的选择。
二、VO:value object值对象。通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.
PO只能用在数据层,VO用在商业逻辑层和表示层。各层操作属于该层自己的数据对象,这样就可以降低各层之间的耦合,便于以后系统的维护和扩展。
好处:这样可以减少大量的工作量(也就意味着减少bug,减少风险),也不需要担心未来的维护工作!
java,ssh开发时,是否需要建立VO类
从业务层次上分:(这里只说数据对象)
在数据库执行持久化(或者查询)操作时,我们需要PO,也就是持久化对象,在这个对象中,字段一般是对应数据库table的,而且我们还可以吧相关的查询参数写到这个类里面(比如分页参数等等),经过DAO操作后,(针对目前主流的ORM模型),我们会得带一个结果对象(或者是list),这里我们成为DO(data object)
接下来DO会被BO(business object,说简单点就是小型应用中的service层)接收并做处理,BO一般是针对一个领域的操作,所以BO处理的结果被称为DO(domain object),也就是所谓的领域对象(个人理解),再接下来,如果你存在AO层(application object),也就是应用层的话,AO会调用BO,也就是说AO是对BO的封装,说白了就是对具体应用的组合(相对来说就是BO封装DAO),AO处理完以后一般会放回一个RO(result object),封装对应用的响应和返回的结果。
然后,才是到了我们的web层,也就是我们的struts action那一层(action整合AO)。
也就是说,web层,就是我们的struts应该做的事情是什么:
1:对提交表单的验证和处理
2:对http会话的管理和相关权限的分配以及对AO的整合调用
3:对客户端(浏览器)响应结果
提到响应结果,我们就说到VO了,vo全名value object,值对象,用在这层再合适不过了,我们把从AO调用返回的RO中的数据提取出来转换成VO,就可以通过struts渲染到jsp(或者freemarker,velocity,以及json格式的ajax响应)页面上了。当然VO也可以适当充当表单对象来用作提交,但是,也只是一定程度上的,提交的表单不一定就跟返回的结果一模一样,这点相信大家都知道的呵呵
总结一下:调用操作StrutsAction---->AO---->BO(小型项目上,AO+BO也可整合成Service)----->DAO,各层各司其责,方便以后的维护和扩展,同时结合maven等工具,每个层单独跑junit测试也是相当方便。
从一个VO到这么一大堆问题,不晓得楼主你看晕没,呵呵。以上纯属个人经验,请适当做参考,有不对之处欢迎指出。最后说句让你吐血的话:其实针对小型应用,那些所谓的PO,DO,RO都可以不需要了,直接一个VO贯穿整个数据应用就行。引用楼上兄弟的一句话:具体实现看你自己。既要保证优良的层次结构,也要杜绝过度设计。
Java里VO是什么
java有几种对象(PO,VO,DAO,BO,POJO)
一、PO:persistant object持久对象,可以看成是与数据库中的表相映射的java对象。使用Hibernate来生成PO是不错的选择。
二、VO:value object值对象。通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.
PO只能用在数据层,VO用在商业逻辑层和表示层。各层操作属于该层自己的数据对象,这样就可以降低各层之间的耦合,便于以后系统的维护和扩展。
java中为什么要把传进的参数绑定成vo对象
首先,java有几种对象(PO,VO,DAO,BO,POJO)
一、PO:persistant object持久对象,可以看成是与数据库中的表相映射的java对象。使用Hibernate来生成PO是不错的选择。
二、VO:value object值对象。通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.
PO只能用在数据层,VO用在商业逻辑层和表示层。各层操作属于该层自己的数据对象,这样就可以降低各层之间的耦合,便于以后系统的维护和扩展。
好处:这样可以减少大量的工作量(也就意味着减少bug,减少风险),也不需要担心未来的维护工作!
好了,文章到此结束,希望可以帮助到大家。