3 回答
TA贡献2003条经验 获得超2个赞
JavaBeans
JavaBeans是Java的可重用软件组件,可以在构建器工具中可视化地操作。实际上,它们是用Java编程语言编写的符合特定约定的类。它们用于将许多对象封装到单个对象(Bean)中,这样就可以将它们作为单个bean对象传递,而不是作为多个单独的对象传递。JavaBean是一个可序列化的Java对象,它有一个延髓构造函数,允许使用getter和setter方法访问属性。
为了作为JavaBean类发挥作用,对象类必须遵守关于方法命名、构造和行为的某些约定。这些约定使得可以使用、重用、替换和连接JavaBeans的工具成为可能。
所需的公约是:
该类必须具有公共默认构造函数。这允许在编辑和激活框架中轻松实例化。 按照标准命名约定,类属性必须使用get、set和其他方法(所谓的访问器方法和muator方法)进行访问。这允许在框架内自动检查和更新bean状态,其中许多框架包括针对各种类型属性的自定义编辑器。 类应该是可序列化的。这允许应用程序和框架以独立于VM和平台的方式可靠地保存、存储和恢复bean的状态。
由于这些需求在很大程度上是用约定而不是通过实现接口来表示的,一些开发人员将JavaBeans视为遵循特定命名约定的普通旧Java对象。
波霍
javax.ejb
POJO是简单旧Java对象的缩写。这个名称用于强调所讨论的对象是一个普通的Java对象,而不是一个特殊的对象,特别是EnterpriseJavaBean(尤其是在EJB 3之前)。这个词是马丁·福勒、丽贝卡·帕森斯和乔希·麦肯齐在2000年9月发明的: “我们想知道为什么人们如此反对在他们的系统中使用常规的对象,并得出结论,这是因为简单的对象缺乏一个花哨的名字。所以我们给了它们一个名字,它很受欢迎。”
这个术语延续了不使用花哨的新功能的技术的旧术语模式,如电话中的POTS(普通旧电话服务),以及在C+中定义但只使用C语言特性的PODS(普通旧数据结构),以及Perl中的POD(朴素旧文档)。
该术语最有可能得到广泛接受,因为需要一个与复杂的对象框架形成对比的通用且易于理解的术语。JavaBean是一个可序列化的POJO,具有非参数构造函数,并允许使用getter和setter方法访问属性。EnterpriseJavaBean不是一个单独的类,而是一个完整的组件模型(同样,EJB 3降低了EnterpriseJavaBeans的复杂性)。
随着使用POJO的设计变得越来越普遍,出现了一些系统,使POJO在框架中使用了一些功能,并且更多地选择了实际需要哪些领域的功能。Hibernate和Spring就是例子。
值对象
java.lang.Integer
在企业应用程序体系结构的模式中,我将Value对象描述为一个小对象,例如Money或Date Range对象。它们的关键属性是它们遵循值语义,而不是引用语义。
您通常可以告诉他们,因为他们的平等概念不是基于身份,而是两个值对象是相等的,如果它们的所有字段是相等的。尽管所有字段都是相等的,但如果子集是唯一的,则不需要比较所有字段-例如,货币对象的货币代码足以测试相等性。
一个普遍的启发是,值对象应该是完全不可变的。如果要更改值对象,则应用新对象替换该对象,而不允许更新值对象本身的值-可更新的值对象会导致别名问题。
早期的j2ee文献使用了值对象一词来描述一个不同的概念,我称之为 数据传输对象 ..自那以后,他们改变了用法,使用了这个词。 传递对象 相反。
数据传输对象
数据传输对象(DTO),以前称为值对象(Value Objects,VO),是一种用于在软件应用子系统之间传输数据的设计模式。DTO经常与数据访问对象一起使用,从数据库中检索数据。
数据传输对象与业务对象或数据访问对象之间的区别在于,DTO除了存储和检索自己的数据(访问器和变异器)外,没有任何行为。
在传统的EJB体系结构中,DTO具有双重用途:第一,它们解决了实体bean不可序列化的问题;第二,它们隐式地定义了一个组装阶段,其中视图要使用的所有数据都在返回到表示层之前被获取和编组到DTO中。
TA贡献1786条经验 获得超13个赞
Java Class
no-arg
添加回答
举报