见过一些类似的问题:
JavaBean和POJO之间的区别是什么? POJO(普通旧Java对象)和DTO(数据传输对象)之间的区别是什么?
你能告诉我它们在什么语境中使用吗?或者它们的目的是什么?
见过一些类似的问题:
JavaBean和POJO之间的区别是什么? POJO(普通旧Java对象)和DTO(数据传输对象)之间的区别是什么?
你能告诉我它们在什么语境中使用吗?或者它们的目的是什么?
当前回答
值对象:当需要根据对象的值来衡量对象是否相等时使用。 数据传输对象:将具有多个属性的数据一次跨层从客户端传递到服务器,避免多次调用远程服务器。 普通旧Java对象:它就像一个简单的类,有属性,公共无参数构造函数。正如我们为JPA实体声明的那样。
difference-between-value-object-pattern-and-data-transfer-pattern
其他回答
第一次谈论
普通类-这意味着任何类定义,通常在java中,这意味着你创建不同类型的方法属性等。 Bean - Bean什么都不是,它只是一个特定类的对象,使用这个Bean,你可以访问你的java类,就像object..
之后是最后一个POJO
POJO是一个没有任何服务的类,它只有一个默认的构造函数和私有属性,这些属性用于设置一个对应的setter和getter方法的值。 它是普通Java对象的缩写形式。
Java bean与ejb不是一回事。
Java 1.0中的JavaBeans规范是Sun试图允许在看起来像VB的IDE中操作Java对象的尝试。对于符合“Java Beans”条件的对象,制定了一些规则:
默认构造函数 私有数据成员的getter和setter遵循适当的命名约定 可序列化的 也许还有一些我忘了的。
ejb是后来出现的。它们结合了分布式组件和事务模型,运行在管理线程、池、生命周期和提供服务的容器中。它们与Java bean相去甚远。
dto是在Java上下文中出现的,因为人们发现EJB 1.0规范与数据库过于“健谈”。人们不需要为每个数据元素进行往返,而是将它们批量打包到Java bean中并四处运送。
pojo是对ejb的一种反应。
基本上,
DTO:“数据传输对象”可以在软件架构的不同层之间传输。
VO:“值对象”包含一个对象,如Integer,Money等。
POJO:普通的旧Java对象,不是一个特殊的对象。
Java Beans:要求Java类是可序列化的,有一个无参数的构造函数和每个字段的getter和setter
DTO vs VO
DTO -数据传输对象只是用于在层和层之间传输数据的数据容器。
它主要包含属性。您甚至可以使用没有getter和setter的公共属性。 数据传输对象不包含任何业务逻辑。
类比:具有用户名属性的简单注册表单, 密码和电子邮件id。 当这个表单在RegistrationServlet文件中提交时,您将获得从视图层到您传递的业务层的所有属性 将属性转移到java bean,然后转移到DAO或持久层。 DTO有助于将属性从视图层传输到业务层,并最终传输到持久层。
DTO主要用于在网络上有效地传输数据,甚至可以从JVM传输到另一个JVM。
dto通常是java.io.Serializable——以便跨JVM传输数据。
VO - A值对象[1][2]表示自身是一组固定的数据,类似于Java枚举。值对象的标识基于它们的状态,而不是它们的对象标识,并且是不可变的。一个真实世界的例子就是Color。红色,颜色。蓝色,性。女等。
和贾豆
[1] POJO的java - bean性是通过符合JavaBeans约定的公共getter和setter来访问它的私有属性。如。
private String foo;
public String getFoo(){...}
public void setFoo(String foo){...};
[2] JavaBeans必须实现Serializable并具有无参数构造函数,而在POJO中则没有这些限制。
POJO: 它是一个java文件(类),不扩展或实现任何其他java文件(类)。
豆: 它是一个java文件(类),其中所有变量都是私有的,方法是公共的,并且使用适当的getter和setter来访问变量。
普通类: 它是一个java文件(类),可能由公共/私有/默认/受保护的变量组成,它可能扩展也可能不实现另一个java文件(类)。