2015-04-28 46 views
1

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

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

以下可能是一個回答此問題的示例:我們有一個實體Comment,其屬性爲text。是text只是一個字符串變量或值對象?

回答

1

雖然構成其他實體或價值對象的實體是普遍的態度,但並非必要。請記住,你應該考慮抽象。如果沒有涉及使用它們的業務邏輯,原始類型也可以。例如:

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

正如你所看到的,暱稱是一種原始類型,因爲我們不能對暱稱做任何特殊的事情。另一方面,joinDate應該是Value Object,因爲日期有一些邏輯(比較日期,加入,減少等)

即使在Vaughn的「實現領域驅動設計」中,Vernon也是由原始類型。

相關問題