Normal Class- 's mean any class define that'一般来自java,这意味着你创建了不同类型的方法属性 etc. Bean - Bean并不是它只是使用这个bean的特定类的对象,你可以访问与object相同的java类 . .
然后谈到最后一个POJO
POJO - POJO 是那个没有任何服务的类's have only a default constructor and private property and those property for setting a value corresponding setter and getter methods. It'是Plain Java Object的简称形式 .
38
基本上,
DTO:“数据传输对象”可以在软件架构中的单独层之间传输 .
VO:“值对象”包含一个对象,如整数,金钱等 .
POJO:Plain Old Java Object,它不是特殊对象 .
Java Bean:要求 Java Class 可序列化,具有 no-arg 构造函数以及每个字段的getter和setter
6 回答
Java Bean与EJB不同 .
Java 1.0中的JavaBeans specification是Sun试图在一个看起来像VB的IDE中操作Java对象的尝试 . 为符合"Java Beans"条件的对象制定了规则:
默认构造函数
遵循正确命名约定的私有数据成员的getter和setter
可序列化
也许其他人,我忘记了 .
EJB后来出现了 . 它们结合了分布式组件和事务模型,在管理线程,池,生命周期和提供服务的容器中运行 . 它们与Java Bean相去甚远 .
DTO在Java上下文中出现,因为人们发现EJB 1.0规范对数据库来说过于“讨厌” . 人们不是为每个数据元素进行往返,而是将它们批量打包到Java Bean中并运送它们 .
POJO是对EJB的反应 .
POJO :这是一个java文件(类),它不扩展或实现任何其他java文件(类) .
Bean :它是一个java文件(类),其中所有变量都是私有的,方法是公共的,适当的getter和setter用于访问变量 .
Normal class :它是一个java文件(类),可能包含public / private / default / protected变量,可能会也可能不会扩展或实现另一个java文件(class) .
JavaBeans
JavaBean是一个遵循Sun定义的the JavaBeans conventions的类 . 维基百科对JavaBeans的内容有一个非常好的总结:
POJO
简单的旧Java对象或POJO是一个术语,最初用于指定一个简单的轻量级Java对象,而不是实现任何
javax.ejb
接口,而不是重量级EJB 2.x(尤其是实体Bean,无状态会话Bean并不是那么糟糕的IMO) . 今天,该术语用于任何没有额外内容的简单对象 . 同样,维基百科在定义POJO方面做得很好:Value Object
值对象或VO是一个对象,例如
java.lang.Integer
,它包含值(因此值对象) . 对于更正式的定义,我经常参考Martin Fowler对Value Object的描述:数据传输对象
数据传输对象或DTO是EJB引入的(反)模式 . 不是在EJB上执行许多远程调用,而是将数据封装在可以通过网络传输的值对象中:数据传输对象 . 维基百科对Data Transfer Object有一个不错的定义:
所以,对于很多人来说,DTO和VO是一回事(但是Fowler使用VO来表示我们所看到的其他东西) . 大多数时候,它们遵循JavaBeans约定,因此也是JavaBeans . 所有人都是POJO .
先谈谈
Normal Class - 's mean any class define that'一般来自java,这意味着你创建了不同类型的方法属性 etc.
Bean - Bean并不是它只是使用这个bean的特定类的对象,你可以访问与object相同的java类 . .
然后谈到最后一个POJO
POJO - POJO 是那个没有任何服务的类's have only a default constructor and private property and those property for setting a value corresponding setter and getter methods. It'是Plain Java Object的简称形式 .
基本上,
DTO:“数据传输对象”可以在软件架构中的单独层之间传输 .
VO:“值对象”包含一个对象,如整数,金钱等 .
POJO:Plain Old Java Object,它不是特殊对象 .
Java Bean:要求
Java Class
可序列化,具有no-arg
构造函数以及每个字段的getter和setterDTO vs VO
DTO - 数据传输对象只是用于在层和层之间传输数据的数据容器 .
它主要包含属性 . 您甚至可以在没有getter和setter的情况下使用公共属性 .
数据传输对象不包含任何业务逻辑 .
DTO主要用于有效地通过网络传输数据,甚至可以从JVM到另一个JVM .
DTO通常是
java.io.Serializable
- 以便跨JVM传输数据 .VO - 值对象[1] [2]表示一组固定的数据,类似于Java枚举 . 值对象的标识基于它们的状态而不是它们的对象标识,并且是不可变的 . 一个真实世界的例子是Color.RED,Color.BLUE,SEX.FEMALE等 .
POJO vs JavaBeans
[1] POJO的Java-Bean是它的私有属性都是通过公共getter和setter来访问的到JavaBeans约定 . 例如
[2] JavaBeans必须实现Serializable并且具有无参数构造函数,而在POJO中没有这些限制 .