接触到这些乱七八糟的数据模型时,真的一头雾水,在设计架构时也乱七八糟,不知道怎么根据数据模型取对应的包名,我也是翻阅了网上的各种资料,没有人说的通俗易懂,那我就自己根据经验整理了一下
POJO
【plain old java object】普通 Java 对象,可以作为其他数据模型的基础VO
【value object】 :值对象是不可变的对象,没有唯一 ID 标识符,用于表示一组值【意味着如果两个值对象的属性相同,那么它们就是相等的】- 可以包含简单的业务逻辑操作
- VO 中通常重写 equals 和 hashCode 方法,以便基于值进行比较
PO / 实体
【Entity】 :实体必须要有唯一 ID 标识符,意味着如果两个 Entity 的属性值相同,它们也不相等;PO 是与数据库表相映射的 Java 对象【所以 PO 和实体可以看作是相同的概念】DTO
【data transfer object】:DTO 用于在不同层之间传输数据- 不包含任何业务逻辑
充血模型
:充血模型 = PO + 业务逻辑,如果某个 PO 中有业务逻辑,那它就是充血模型BO
【Business object】:业务对象包含业务逻辑- 只用于 Service 层