簡體   English   中英

DDD:實體可以具有原始數據類型的屬性嗎?

[英]DDD: Can an entity have attributes of primitive data types?

域驅動的設計區分兩種模型類型:實體和值對象。 在大多數示例中,實體的屬性是值對象或其他實體,而值對象的屬性主要是簡單的字符串,整數等(即原始數據類型)。

這使我想到一個問題:實體是否也可以具有原始數據類型的屬性? 還是通常將實體的每個屬性建模為值對象或另一個實體?

以下可能是回答此問題的示例:我們有一個帶有屬性text的實體Comment text僅僅是字符串變量還是值對象?

雖然通常將另一實體或值對象組合成一個實體,但這不是必需的。 請記住,您應該考慮一個抽象。 當使用原始類型沒有業務邏輯時,原始類型就可以。 例如:

public class User {
    private UserId id;
    private String nickname;
    private Date joinDate;
}

如您所見,昵稱是一種原始類型,因為我們不能對昵稱做任何特殊的事情。 另一方面,joinDate應該是Value Object,因為日期具有某些邏輯(例如比較日期,加,減等)。

即使在沃恩·弗農(Vaughn Vernon)的“實現域驅動設計的實現”中,也包含由原始類型組成的實體的示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM