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"中的资源很可能是关于如何在.NET环境中使用Entity Framework进行数据库操作和实体与DTO之间映射的实例和指南。对于.NET开发者来说,理解并掌握这些概念和技术对于提升开发效率和代码...
《Python库:lol_dto-0.1a10.tar.gz 深度解析》 在编程领域,Python因其简洁的语法和丰富的库支持而备受青睐。本文将深入探讨一个名为"lol_dto"的Python库,具体版本为0.1a10,其资源以压缩包形式提供——"lol_dto-...
EntityFrameworkCore是一个强大的ORM(对象关系映射)框架,专为.NET Core和.NET Framework设计,由微软维护。它使得.NET开发者无需直接操作SQL语句,就能通过C#代码与数据库进行交互,极大地提高了开发效率。Entity...
bean-searcher-dev框架允许开发者直接使用业务对象进行查询,避免了将查询结果转换为DTO或VO的过程,降低了代码的复杂性和冗余。 5. **一行代码实现复杂列表检索**:该框架的强大之处在于其简洁的API设计,允许...
简单的EntityFramework4.3+三层+DTO,如果需要简化版的,我的资源里有一个不含DTO的版本。 这个Demo的主要功能是: 1、实体类的创建、复杂类型的嵌套 2、实体类的配置(主键、外键、一对一、1对多,多对多) 3、...
标签:apollo-dto-1.0-javadoc.jar,apollo,dto,1.0,javadoc,jar包下载,依赖包
然而,对于VO对象、DTO对象以及前端Vue页面等非预置的代码生成需求,就需要我们对默认的代码生成器进行扩展和定制。 在MyBatisPlus 3.5.3版本中,代码生成器主要有两种类:`AutoGenerator`和`FastAutoGenerator`。`...
在IT行业中,Bean和Cookie是两个非常重要的概念,它们分别在不同的上下文中起着关键作用。Bean主要在Java企业级应用开发中,特别是在Spring框架中,而Cookie则在网络编程特别是Web应用中常见。下面我们将详细探讨这...
本文将详细介绍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等定义
资源分类:Python库 所属语言:Python 资源全名:lol_dto-1.0.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
var entity = entries.FirstOrDefault(e => e.LedgerEntryID == dto.LedgerEntryID); dto.Payment = entity?.Payment; 其中dto.Payment是一个PaymentDTO类的实例,entity?.Payment是一个Payment类的实例,PaymentDTO...
DTO类通常没有业务逻辑,只包含属性和getter/setter方法,与XML映射的Java Bean类似。 至于文件读取的工具类,它可能包含了一些通用的方法,如读取文件内容、检查文件是否存在、读取文件到字符串等,以帮助简化文件...
本文将详细解析"PO/POJO/VO/BO/DAO/DTO"这六个概念,并探讨它们在实际项目开发中的作用和应用场景。 1. PO(Persistent Object,持久化对象) PO是指与数据库表结构一一对应的Java对象,它通常包含了数据库表中的...
以下是关于POJO、VO、PO、DO、DTO的详细解释及其区别。 1. POJO(Plain Old Java Object):POJO是一个通用术语,指没有特定框架限制的简单Java对象。它通常包含了业务逻辑和数据属性,不包含任何特定框架的注解或...
Spring Boot 中使用 ObjectMapper 实现 DTO 到 Entity 的自动赋值 在 Spring Boot 项目中,经常需要将 DTO(Data Transfer Object)对象转换为 Entity 对象,以便于业务逻辑的处理。在这种情况下,手动赋值字段是一...
DTO(Data Transfer Object)设计模式是一种在分布式系统中广泛使用的设计模式,它的主要目的是为了在系统组件之间传递数据。在大型应用程序中,特别是在服务层和表示层之间,DTO扮演着重要角色,因为它们能有效地...
标签:apollo-dto-1.7.jar,apollo,dto,1.7,jar包下载,依赖包
计算机技术、IT咨询、人工智能AI理论介绍,学习参考资料计算机技术、IT咨询、人工智能AI理论介绍,学习参考资料计算机技术、IT咨询、人工智能AI理论介绍,学习参考资料计算机技术、IT咨询、人工智能AI理论介绍,学习...