是在问题标题中提到的概念同义于一定程度吗?主要差异在哪里谎言(上下文,结构,......),并且可以被视为另一个子集?以下是维基百科的一些短暂定义。

pojo(普通的旧java对象) wikipedia

在计算软件中,Pojo是一个 纯旧Java对象的首字母缩写。这 名称用于强调给定的 对象是普通的Java对象,而不是 一个特殊的对象,特别是 不是企业JavaBean。术语 由丽贝卡的马丁福勒创造 帕森斯和乔希·麦肯齐 2000年9月:

"We wondered why people were so against using regular objects in their
 systems and concluded that it was
 because simple objects lacked a fancy
 name. So we gave them one, and it's
 caught on very nicely."
.

java bean wikipedia

javabeans是可重用的软件 可以是Java的组件 在建筑师的视觉上操纵 工具。实际上,他们是课程 写在Java编程中 语言符合特定的 习俗。他们习惯了 将许多对象封装成一个 对象(bean),这样他们就可以了 作为单个bean对象传递 而不是多个个人 对象。 javabean是一个java对象 这是可序列化的,有一个彩色的 构造函数,并允许访问 使用getter和setter的属性 方法。

值对象 wikipedia

数据传输对象(DTO),以前 被称为价值对象或vo,是一个 用于传输数据的设计模式 软件应用程序之间 子系统。 DTO通常用于 与数据访问对象的结合 从数据库中检索数据。

业务对象 wikipedia

业务对象是一种类型 可理解的实体是演员 在业务层里面 N层面向对象的计算机 程序。

相关:

dto,vo,pojo,javabeans之间的区别? javabean和pojo之间有什么区别?< / a> ddd:差异是什么?实体和值对象之间?

有帮助吗?

解决方案

并非所有这些分类都相关。这是我的理解:

  • pojo是它的名字建议 - 一个普通的旧java对象。它没有什么特别的。当我们说对象是POJO时,这正是我们想要传达的东西。今天,大多数应用程序正在使用某种潜在的框架,并且框架对象与框架集成的对象有所要求 - 对象必须实现一个接口或扩展类。当我们说一个对象是一个pojo时,我们的意思是说它只是一个普通对象,并且在任何框架上都没有依赖关系。

  • 一个javabean是一个java类,如上所述遵循某些约定。这些对象通常由某些框架要求,该框架使用反射来找出物体的属性(可访问的机器/设置器)并操纵它们。豆类暴露于JSP,春豆等。关于JavaBeans的好处是他们仍然是Pojos。虽然它们遵循某些惯例,但概述不由任何特定框架定义,但是Sun JavaBean标准相同定义,仍然是仍然是普通的Java类,没有任何第三方框架的类或接口的关系。

  • 业务对象是指代表代表业务域实体的对象。这些通常驻留在您的业务层中 - 所有业务逻辑所在的图层。这些对象通常映射到持久性商店实体e.g.表。这些对象可以是Pojos,JavaBeans,EJBS等。

  • 值对象是一种设计模式。在一些小型Web应用程序中,您也可以选择在Web层中使用您的业务对象。但是,在较大的应用程序或J2EE应用程序中,您可以定义值对象以将信息从业务层移动到Web层。这就是为什么它们也被称为数据传输对象(DTO)。这些对象通常只有Web层中所需的属性,并留下符合业务层消费的业务对象的属性。它们也可能具有在业务层中生成的“计算”属性。使用此模式有助于将业务和Web层解耦。

其他提示

这是我的看法:

  1. 业务对象是一项通用术语 为了抽象的想法 代表你的问题。你可以 以任何语言实现它们。在 java,你有其他选择 制作,因为他们可以是pojos或 EJB,可变或不变。
  2. 值对象或DTO用于在层之间渡轮数据。他们通常是不可变的。它们可以实现为POJO或Java Beans。将它们视为Pojos的另一个子集。
  3. java bean符合原始的太阳规范。它们旨在提供一个允许它们以轻松插入VB样式IDE的界面。将这些视为pojo的子集。
  4. 人们有时会对Java Beans和Enterprise Java Bean之间的区别感到困惑。 Java Bean是原始Java 1.0规范的一部分,旨在像VB组件(记住“Bean Box”?)。 Enterprise Java Bean是一种规范,遵循它描述了特殊的Java对象如何实现特定接口来与Java EE App Server互操作。 App Server是一个事务监视器,用于分布式组件体系结构,用于处理线程,持久性,池,对象生命周期,消息传递,命名等。EJB是仅在Java EE应用程序的上下文中工作的Java对象的非常特殊的子集服务器。
  5. 可以实现POJO以符合Java Bean标准,但这不是要求。任何Java对象都有资格作为POJO。它最初意味着将它们与EJB 2.0版本区分开,这需要多个接口,以便正确与Java EE App Server互操作。

问题是将其中一些用作同义词是错误的吗?如果给定的分类可以被视为子集或另一个。

将这些术语用作同义词是错误的。他们显然有明显的含义。引用的定义(以及其他答案中提供的定义)使此清晰。

但是,如果它通常有效地使用许多(或甚至全部)这些术语来描述相同的对象或对象。这一切都是一个视角;即,您正在尝试强调的对象的哪些方面。

<强>合成(从给定的答案):

  • pojo :一个普通对象,没有依赖于任何框架。它可以适应符合Java Bean标准,而不需要如此。
  • javabean :符合Sun JavaBean或Java 1.0规范的对象(参见“Bean Box”)。它们最初是为了提供一个界面,因此它们可以插入VB样式IDE,几乎没有困难。可以被视为POJO的子集,仍然是框架的独立人物。它可以采用某些咒语,例如反射到访问属性。
  • 企业java bean :它们不应该与Java Bean混淆。随着版本3.0所带来的简化,EJB可以被视为等同于POJO。 EJB本身是一个规范,描述了可以使用Java EE服务器互操作的特殊Java对象。在分布式组件体系结构的上下文中,服务器在分布式组件架构处理中诸如线程,持久性,汇集,对象生命周期,消息传递和命名的上下文中的事务监视器。因此,可以将EJB视为用于Java EE应用服务器的凹陷的非常特殊的子集。
  • 业务对象:理论概念或抽象思想有助于代表给定的问题。它代表业务域实体并驻留在应用程序的业务层中。它们可以在持久性的背景下映射到实体。该对象可以是pojo / javabean / ejb,是可变的或不可变的。
  • 值对象/数据传输对象:采用设计模式,有助于解耦业务和Web层。这是为了满足大型应用程序的上下文,其中对象可以在图层之间传输(例如,例如业务和Web层)。它们通常在自然中通常是不可变的,可以被形成为pojos或java beans。一种特异性是它们可以包含在业务层中生成的计算属性。

p.s:标记为社区维基,所以随意编辑。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top