`
rensanning
  • 浏览: 3552884 次
  • 性别: Icon_minigender_1
  • 来自: 大连
博客专栏
Efef1dba-f7dd-3931-8a61-8e1c76c3e39f
使用Titanium Mo...
浏览量:38220
Bbab2146-6e1d-3c50-acd6-c8bae29e307d
Cordova 3.x入门...
浏览量:607621
C08766e7-8a33-3f9b-9155-654af05c3484
常用Java开源Libra...
浏览量:682811
77063fb3-0ee7-3bfa-9c72-2a0234ebf83e
搭建 CentOS 6 服...
浏览量:89542
E40e5e76-1f3b-398e-b6a6-dc9cfbb38156
Spring Boot 入...
浏览量:402155
Abe39461-b089-344f-99fa-cdfbddea0e18
基于Spring Secu...
浏览量:69763
66a41a70-fdf0-3dc9-aa31-19b7e8b24672
MQTT入门
浏览量:91842
社区版块
存档分类
最新评论

Bean、DTO、VO、Entity、Form...?

    博客分类:
  • Java
 
阅读更多
Java项目中,经常遇到很多具有统一命名规则的类。比如:XXXBean、XXXDTO、XXXEntity、XXXVO、XXXForm等。这些类大多被用于MVC的Model层,有很多共性。比如都具有私有属性、Setter/Getter,但具体什么时候该用什么呢。

(1)Bean
JavaBeans的简称,对于Java程序员来说是最不陌生的,即使是刚开始学Java,也会应该听说过它。它是Sun公司定义的一个程序组件,并且有明确的编码规范,比如:类应该有属性,而且是私有的,通过Setter/Getter方法来访问私有属性。

http://baike.baidu.com/view/1006495.htm
http://en.wikipedia.org/wiki/JavaBeans
http://docstore.mik.ua/orelly/java-ent/jnut/ch06_02.htm

(2)DTO
Data Transfer Object数据传输对象的简称,多用于多个系统之间,网络通信,数据库存取等。将调用或返回的数据保存在DTO中从而减少调用负载。它不包含业务逻辑处理,但可以有数据整合性的校验。DTO需要注意的是必须序列化,即implements Serializable。

http://baike.baidu.com/view/160599.htm
http://en.wikipedia.org/wiki/Data_transfer_object
http://msdn.microsoft.com/en-us/library/ms978717.aspx
http://martinfowler.com/bliki/LocalDTO.html
http://martinfowler.com/eaaCatalog/dataTransferObject.html

(3)VO
Value Object值对象的简称,敏捷开发方法的创始人之一Martin Fowler认为“Value Object as a small object such as a Money or date range object”。
主要用于领域驱动设计(Domain Driven Design),VO的值/实例一般是不会变的,比如下个月的第一个工作日。一般没有Setter方法通过构造函数设定值。

这个是最多被大家无解的。

http://en.wikipedia.org/wiki/Value_object
http://martinfowler.com/bliki/ValueObject.html

(4)Entity
实体,多用于DB中以表为单位存取数据,类中定义了表的每个字段的Setter/Getter。一个Entity实例即为表中的一条数据。起源于EJB,比如EJB1.x、2.x中的EntityBean,EJB3.x的JPA。

(5)Form
起源于Struts,现在也常用语Spring中。主要用于接收页面表单中的数据或者页面显示用数据的存储,包含校验Validate方法。

综上
VO多用于金钱或者时间等代表价值的对象,比较特殊。
JavaBean更像是一个总称,他包含了Form(与页面交互)、DTO(各种信息的集合体)、Entity(与DB交互)

其他
1)POJO
Plain Old Java Object简单Java对象的简称,多用于和EJB的复杂做对比。不被框架,对象模型,规约等约束,也不依存于这些东西。

2)Domain Object
域对象

分享到:
评论

相关推荐

    EntityFramework.zip

    总结来说,"EntityFramework.zip"中的资源很可能是关于如何在.NET环境中使用Entity Framework进行数据库操作和实体与DTO之间映射的实例和指南。对于.NET开发者来说,理解并掌握这些概念和技术对于提升开发效率和代码...

    Python库 | lol_dto-0.1a10.tar.gz

    《Python库:lol_dto-0.1a10.tar.gz 深度解析》 在编程领域,Python因其简洁的语法和丰富的库支持而备受青睐。本文将深入探讨一个名为"lol_dto"的Python库,具体版本为0.1a10,其资源以压缩包形式提供——"lol_dto-...

    EntityFrameworkCore.zip

    EntityFrameworkCore是一个强大的ORM(对象关系映射)框架,专为.NET Core和.NET Framework设计,由微软维护。它使得.NET开发者无需直接操作SQL语句,就能通过C#代码与数据库进行交互,极大地提高了开发效率。Entity...

    bean-searcher-dev.zip

    bean-searcher-dev框架允许开发者直接使用业务对象进行查询,避免了将查询结果转换为DTO或VO的过程,降低了代码的复杂性和冗余。 5. **一行代码实现复杂列表检索**:该框架的强大之处在于其简洁的API设计,允许...

    简单的EntityFramework4.3+三层+DTO 简单Demo

    简单的EntityFramework4.3+三层+DTO,如果需要简化版的,我的资源里有一个不含DTO的版本。 这个Demo的主要功能是: 1、实体类的创建、复杂类型的嵌套 2、实体类的配置(主键、外键、一对一、1对多,多对多) 3、...

    apollo-dto-1.0-javadoc.jar

    标签:apollo-dto-1.0-javadoc.jar,apollo,dto,1.0,javadoc,jar包下载,依赖包

    扩展MyBatisPlus代码生成器实现自定义源码生成,可生成前端页面、vo对象、dto对象等代码

    然而,对于VO对象、DTO对象以及前端Vue页面等非预置的代码生成需求,就需要我们对默认的代码生成器进行扩展和定制。 在MyBatisPlus 3.5.3版本中,代码生成器主要有两种类:`AutoGenerator`和`FastAutoGenerator`。`...

    00000029_bean-cookie的用法.rar

    在IT行业中,Bean和Cookie是两个非常重要的概念,它们分别在不同的上下文中起着关键作用。Bean主要在Java企业级应用开发中,特别是在Spring框架中,而Cookie则在网络编程特别是Web应用中常见。下面我们将详细探讨这...

    VO / DTO / BO / ORM DAO entity DO PO/ POJO(分层领域模型规约)整理

    本文将详细介绍VO (View Object)、DTO (Data Transfer Object)、BO (Business Object)、ORM (Object Relational Mapping)、DAO (Data Access Object)、Entity (实体)、DO (Data Object)、PO (Persistent Object)、...

    J2EE基础知识之DTO,VO,PO,DO等定义

    J2EE基础知识之DTO,VO,PO,DO等定义J2EE基础知识之DTO,VO,PO,DO等定义J2EE基础知识之DTO,VO,PO,DO等定义

    Python库 | lol_dto-1.0.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:lol_dto-1.0.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    实例分享C#中Explicit和Implicit用法

    var entity = entries.FirstOrDefault(e => e.LedgerEntryID == dto.LedgerEntryID); dto.Payment = entity?.Payment; 其中dto.Payment是一个PaymentDTO类的实例,entity?.Payment是一个Payment类的实例,PaymentDTO...

    java 使用 JAXB 将xml转换为 bean 包含xml和dto和读取文件的util类

    DTO类通常没有业务逻辑,只包含属性和getter/setter方法,与XML映射的Java Bean类似。 至于文件读取的工具类,它可能包含了一些通用的方法,如读取文件内容、检查文件是否存在、读取文件到字符串等,以帮助简化文件...

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

    本文将详细解析"PO/POJO/VO/BO/DAO/DTO"这六个概念,并探讨它们在实际项目开发中的作用和应用场景。 1. PO(Persistent Object,持久化对象) PO是指与数据库表结构一一对应的Java对象,它通常包含了数据库表中的...

    JAVA中的POJO、VO、PO、DO、DTO都是什么?有什么区别?

    以下是关于POJO、VO、PO、DO、DTO的详细解释及其区别。 1. POJO(Plain Old Java Object):POJO是一个通用术语,指没有特定框架限制的简单Java对象。它通常包含了业务逻辑和数据属性,不包含任何特定框架的注解或...

    springboot~ObjectMapper~dto到entity的自动赋值

    Spring Boot 中使用 ObjectMapper 实现 DTO 到 Entity 的自动赋值 在 Spring Boot 项目中,经常需要将 DTO(Data Transfer Object)对象转换为 Entity 对象,以便于业务逻辑的处理。在这种情况下,手动赋值字段是一...

    DTO设计模式.docx

    DTO(Data Transfer Object)设计模式是一种在分布式系统中广泛使用的设计模式,它的主要目的是为了在系统组件之间传递数据。在大型应用程序中,特别是在服务层和表示层之间,DTO扮演着重要角色,因为它们能有效地...

    apollo-dto-1.7.jar

    标签:apollo-dto-1.7.jar,apollo,dto,1.7,jar包下载,依赖包

    别再用 BeanUtils 了,这款 PO VO DTO 转换神器不香么?.zip

    计算机技术、IT咨询、人工智能AI理论介绍,学习参考资料计算机技术、IT咨询、人工智能AI理论介绍,学习参考资料计算机技术、IT咨询、人工智能AI理论介绍,学习参考资料计算机技术、IT咨询、人工智能AI理论介绍,学习...

Global site tag (gtag.js) - Google Analytics