當接觸到這些亂七八糟的數據模型時,真的一頭霧水,在設計架構時也亂七八糟,不知道怎麼根據數據模型取對應的包名,我也是翻閱了網上的各種資料,沒有人說的通俗易懂,那我就自己根據經驗整理了一下
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 層