🏆 唐纳德 • 特朗普钦定的 Java 脚手架,让 Java 再次伟大!v2.7 (已接入L站登录福利)

整洁架构中 Dto Vm Entity Vo Do Bean Pojo 的区分与使用

Dto Vm Entity Vo Do

后缀 定义 用处 备注 三层架构
DTO 数据传输对象。通常只包含属性和 getter/setter 方法,没有任何业务逻辑。 用于在应用程序的不同层之间传输数据 不可变。 service controller dao
VM 视图模型。通常用不可变对象的如 record 来表示。 映射视图中的数据,实现视图和模型之间的解耦。 不可变 controller
Entity 实体对象。通常包含实体的属性和行为,但不包含复杂的业务逻辑 表示业务领域中的实体或对象,例如用户、订单、商品等。属于领域模型中的一部分。通常由数据访问层创建和管理。 有独立的生命周期 dao
Vo 值对象。一种不可变的对象,它的值在创建后不会发生变化。不包含业务逻辑和复杂的计算。 一个独立的类,不直接依赖于业务逻辑或数据访问层;通常由领域模型或服务层创建和管理,用于表示一些简单的值。 没有独立的生命周期。 需要定义 equals 方法。 service
DO(Domain Object) 领域模型。通常持有多个类成员如实体、值对象等构成领域业务的成员,并包含实现业务逻辑的复杂方法。 用于表示特定领域的业务概念和规则,封装应用程序的业务逻辑和行为。 有独立的生命周期。其持有的值对象的生命周期依赖于领域模型的生命周期。 service

Bean 与 PoJo

名称 定义 用处
Bean 遵循一些特定的规则。必须有一个无参的构造函数,并且属性必须使用 getter 和 setter 方法进行访问。 适合用于在不同的层之间传递数据,或者封装和业务无关的功能如 Spring 容器管理的对象等。
Pojo 普通的 Java 对象,没有任何限制。 适用于各种场合,特别是和业务相关的场合,如映射数据库实体等。
6 个赞