`
weishuwei
  • 浏览: 326132 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

vo层的职责问题

阅读更多

我们的项目里以前有个vo层,我现在要把代码重构一下,想把这个vo层去掉,个人认为定义个vo层,是为了便于页面数据的格式转换.
比如我数据库存储是long型的数据,而我要在页面上以科学计数法的方式转换,而vo就是在这里起作用的(把po的数据转化为页面想要的数据),我们现在用freemarker作页面,包括时间和数字的格式可以通过freemarker进行格式化,感觉vo必要性不是很大,况且多一层转换,也影响程序的效率.所以想把vo层去掉.大家有什么想法没

我对vo层的职责是这样理解的,大家有什么不同的见解可以讨论一下

分享到:
评论
10 楼 heipn 2007-06-28  
没有vo的话,把事务又向上提了一层,数据库的相关性是在每层(dao,bussiness,web)都有了。
9 楼 insky 2007-06-28  
ahuaxuan 写道
vo肯定不是用来做你说的那种用途的,如果用jsp,你说的需求也可以使用jstl中的fmt来处理,横竖不需要vo这玩意,但是如果搞分布式这个vo还是有点用途的

加上vo这层比就是为了组合逻辑数据,在View端更容易显示的吗?jstl再强大也应该避免做或少做逻辑判断吧?否则不就又回到页面逻辑凌乱的老路上去了?
8 楼 xly_971223 2007-04-13  
swordrawn 写道
要vo做虾米,有dto和formbean不就完了吗

个人感觉vo跟dto差不多 只不过叫法跟用意不同而已
7 楼 slaser 2007-04-13  
处理vo和domain object之间的转化是很麻烦的。用动态模型的SDO是解决分布式对象传输的比较好的方案。
6 楼 jomper 2007-04-13  
vo 算是个静态模型。

sdo 里的dataObject,动态模型通过set("name","value");我想是不是可以替代静态模型。
5 楼 swordrawn 2007-04-12  
要vo做虾米,有dto和formbean不就完了吗
4 楼 ahuaxuan 2007-04-12  
vo肯定不是用来做你说的那种用途的,如果用jsp,你说的需求也可以使用jstl中的fmt来处理,横竖不需要vo这玩意,但是如果搞分布式这个vo还是有点用途的
3 楼 fly_ever 2007-04-12  
感觉VO有时候还是必要的,当数据库中表的字段与页面的表单区别很大时,比如当表单包含了几个表的字段时,需要组合几个表的内容来表示一个对象,用VO还是比较好的吧.
2 楼 jamesby 2007-04-12  
vo应该是EJB大量使用的时候的一个东西,还包含DTO之类的东西,现在觉得似乎没有存在的必要,对于struts2.0,似乎formBean都省略了,action本身就兼职充当formBean的角色了!
1 楼 刑天战士 2007-04-12  
vo层纯粹是生造出来的(感谢struts1.0),对于数据转换,可以效仿jsf用converter实现,还有校验,也可以用validator实现。这也算一个“层”吧

弄错概念了,vo是指DTO吧,EJB时代发展起来的东西,可以看一下以前的帖子里面又讨论。

相关推荐

    po vo dto bo to

    - VO对象通常是在业务逻辑层创建的,与数据库表的结构无关,而是根据业务需求定义。 - VO对象可以由PO或其他VO对象组合而成,也可以独立存在。 - VO对象的生命周期与具体的业务流程相关,不受数据库连接的限制。 ##...

    博客系统(dao+servlet+service+vo+mysql)

    Service层的设计通常遵循单一职责原则,确保每个服务类专注于一个特定的业务功能,使得代码更加模块化。 VO(值对象)是简单数据容器,用于在不同的层之间传输数据。在这个博客系统中,VO类可能包括Blog、User、...

    Java的几种对象(PO-VO-DAO-BO-POJO)解释

    值对象(Value Object,简称VO),通常用于业务层之间的数据传递,与PO类似,它也仅包含数据。但是,VO更倾向于抽象出具体的业务对象,可以根据实际业务需求选择是否与数据库表进行对应。在Web开发中,VO经常被用作...

    java(PO,VO,BO,DAO,POJO)Explained Collection

    在实际开发中,小规模项目可能PO、BO、VO混用,而在大型系统中,通常会根据职责分离原则,明确区分这些对象,以提高代码的可维护性和复用性。选择合适的对象类型和设计模式,需要根据具体项目需求和性能考虑。

    java术语(PO/POJO/VO/BO/DAO/DTO)

    PO的主要任务是在业务层和数据层之间传递数据,但它不应包含任何对数据库的操作逻辑,这样的职责应当留给DAO层。 #### POJO (Plain Ordinary Java Object) 简单Java对象 POJO是一种纯粹的Java对象,遵循Java Bean...

    Java和bean(VO)、dao、Servlet、jsp的综合总结复习

    这样的设计模式在实际开发中非常常见,确保了各层职责分明,易于维护和扩展。 总之,JavaBean、DAO、Servlet和JSP是构建JavaWeb应用的基础,它们协同工作,实现了从用户界面到数据存储的完整数据流。在"systemone...

    java的几种对象(PO_VO_DAO_BO_POJO)解释

    DAO对象的主要职责是在业务层和数据层之间提供一个抽象接口,实现数据的查询、插入、更新和删除等操作。通过DAO模式,可以将业务逻辑与数据访问逻辑分离,提高系统的可扩展性和可维护性。 ### 业务对象(BO) 业务...

    J2EE架构数据表示:Struts+Hibernate

    总的来说,J2EE架构中的数据表示和流转应当遵循一定的规则,以保持各层的职责清晰。Struts和Hibernate的结合利用了它们各自的优点,使数据处理更加高效。然而,实际项目中可能会有妥协和权衡,例如直接使用PO作为VO...

    超市管理系统源代码

    View层的职责是将Controller处理的结果以用户友好的方式展现,同时收集用户的输入,发送请求到Controller。 在实际的项目中,这个超市管理系统可能还包括其他组件,如Service层,它负责更高层次的业务逻辑,以及...

    基于java中的PO VO DAO BO POJO(详解)

    在Java开发中,特别是在企业级应用领域,有几种常见的对象模型,它们分别是PO(Persistent Object)、VO(Value Object)、DAO(Data Access Object)、BO(Business Object)和POJO(Plain Old Java Object)。...

    java 项目模型 按层次结构划分

    三层架构强调各层职责分明,提高可扩展性和可测试性。 4. **服务层和服务接口**:在大型项目中,服务层通常包含业务服务接口和服务实现。接口定义了服务的公共方法,而实现则提供了具体的功能。这种方式有利于服务...

    酒店服务员岗位介绍.doc

    - **问题解决**:协助客人解决就餐中遇到的问题,必要时向管理层反馈,寻求解决方案。 - **宴会摆台**:遵循标准的摆台流程,如铺设台布、摆放餐具,保证整齐美观,符合宴会规格。 在酒店服务业,服务员的角色...

    应用分层及规约

    在软件开发中,应用分层是一种常见的设计模式,它将应用程序划分为若干个逻辑层,每一层关注于解决某一类问题。从上至下,这些层通常包括: 1. **开放接口层**:这是对外提供的接口层,可以封装Service层方法,通过...

    java完美笔记

    VO类用于数据传输和封装,确保不同层之间传递的对象是对象而非原始数据类型。VO类应遵循一定的规范,如与表名一致,实现Serializable接口以支持序列化,使用包装类代替基本类型,提供getter和setter方法,以及无参...

    java-DAO分层解析.pdf

    总结,Java DAO分层架构通过分离职责,提高了代码的可读性和可维护性,使得系统更易于扩展和测试。业务层通过DAO层与数据库交互,而DAO层通过接口定义了与数据库交互的标准,降低了各层间的耦合度。

    设计规约架构师成长之路

    推荐的工程分层结构包括开放接口层、终端显示层、Web层、Service层、Manager层和DAO层,每一层都有其特定的功能和职责。开放接口层用于提供对外服务,Web层主要负责访问控制和基本参数校验,Service层处理业务逻辑,...

    Listbl模块1

    在本文中,我们将深入探讨Listbl模块的结构、职责、接口规范以及业务逻辑层的动态模型。 首先,Listbl模块的需求和职责在需求规格说明文档中有明确的定义。它的功能包括处理用户登录、用户管理界面的服务,以及与...

    vo2jog-api-v3:使用DDD重写vo2jog API的第三次,应用Khalid Stemmler的SOLID Book中的课程

    【标题】"vo2jog-api-v3"是基于领域驱动设计(DDD)原则重新构建vo2jog API的第三次尝试。在这个项目中,开发者采用了Khalid Stemmler的"SOLID"书籍中的教义,旨在提升代码质量和可维护性。 【描述】"vo2jog-api-v3...

    C# 文件管理器源码

    VO层(值对象层)包含了表示业务实体的数据结构,它们不包含任何业务逻辑,仅用于在UI和DAO之间传递数据。最后,DAO层负责与数据库的交互,通过IBatis提供的接口执行SQL并返回结果。 总的来说,这个【C# 文件管理器...

    运用DAO和对象化进行重构_项目教程(2)_复习

    2. 对象化:对象化是面向对象编程的核心思想,它将数据和操作数据的方法封装在一个对象中,形成一个具有特定职责的实体。在重构过程中,对象化有助于将复杂问题分解成更小、更易于管理的部分,提高代码的可读性和可...

Global site tag (gtag.js) - Google Analytics