DDD之3實體和值物件

2021-10-06 19:36:28 字數 1405 閱讀 9625

圖中是乙個別墅的模型,代表實體,可以真實的看得到。那麼在ddd設計方**中,實體和值物件是什麼呢?

實體和值物件是領域模型中的領域物件,是組成領域模型的基礎單元,一起實現實體最基本的核心領域邏輯。

那麼問題來了:

1, 他兩在領域模型中的作用是什麼?

2,在系統中跟**模型和資料模型是怎麼對應的?

搞清楚這兩個問題很重要。回答問題是需要有知識基礎的,先來捋清楚這兩個概念的定義和內涵。然後在小結部分我們來回答這兩個問題。

定義: ddd中的一類物件,擁有唯一識別符號,經歷各種狀態變更後仍然可以保持一致,對這類物件而言,重要的是延續性和標識,(物件的延續性和標識可以超出軟體的生命週期)而非屬性。

形態:不同的設計過程中,形態不一致。 

特點:值物件描述了領域中的一件東西,這個東西是不可變的,它將不同的相關屬性組合成了乙個概念整體,當度量和描述改變的時候,它可以用另外乙個值物件替換,並進行相等性比較而不會帶來***; ** **簡單來說: 值物件本質就是乙個集合;**意義:領域建模過程中,值物件可以保證屬性歸類的清晰和概念的完整性;**

缺點:如果實體引用的值物件過多,會導致實體堆積一批缺乏概念完整性的屬性,值物件失去了業務含義,操作起來不方便;

ddd提倡從領域模型設計出發,而不是先設計資料模型;

首先明確了實體和值物件的概念,以及在不同的設計階段的形態。然後通過乙個例子展示了實體和值物件的概念和使用;

這是乙個從業務模型向系統模型落地過程,考驗的是設計能力,我們應該結合自己的業務場景,選擇合適的方法進行微服務設計。

最後我來回答一下在背景部分丟擲的兩個問題?

1, 實體和值物件在領域模型中的作用是什麼?

2,在系統中跟**模型和資料模型是怎麼對應的?

經過上面的分析,我的回答如下:

希望大家都理解好ddd的實體和值物件,設計出高度靈活的**;

DDD 領域驅動設計 「臆想」中的實體和值物件

其他博文 扯淡開始 宇宙只是介面,科技永遠觸控不到世界的本原。前段時間剛看完這部電影,然後無意間在園中,發現了一位園友寫的一篇觀後感,說實話,當時看過這篇博文之後只是有乙個印象,並沒有深入的去思考一些東西,上面的那段話就來自園友的這篇博文,現在仔細讀起來確實很有深意,當然這只是對某一部分人來說,有的...

開發規範實體和值物件

寫實體類的時候 預設多對一的一方要寫,特殊情況才不寫 預設一對多的一方不用寫,特殊才寫 例如 entity table name t device access accesstype.field public class device extends baseentity 設定裝置狀態編號。詳細說明...

實體與值物件

實體 在時間上有連續性,並且有唯一標識可以來區分的物件。值物件 用來描述事物的,不區分誰是誰的,不可變的物件。判斷乙個物件是實體還是值物件,還要根據它在具體的業務領域中的實際意義來決定,比如 體育館裡的座位,當業務領域這樣規定,一張門票對應乙個特定的座位,即每個座位都應該嚴格區分誰是誰,觀眾在選擇座...