有幾個關於這方面的問題,閱讀它們並沒有幫助我。在Eric Evans DDD中,他在某些情況下使用地址作爲值類型的示例。對於郵購公司來說,地址是一種價值類型,因爲地址是共享的,誰住在地址上並不重要,只要包裹到達地址即可。DDD:幫助我進一步瞭解價值對象和實體
這對我來說很有意義,直到我開始思考如何做到這一點的設計。考慮到圖99頁上,他這樣說:
+------------+
|Customer |
+------------+
|customerId |
|name |
|street |
|city |
|state |
+------------+
這變爲:
+------------+
|Customer | (entity)
+------------+
|customerId |
|name |
|address |
+------------+
+------------+
|Address | (value object)
+------------+
|street |
|city |
|state |
+------------+
如果這些表格,地址將有其自己的ID,纔能有與的關係客戶,把它變成一個實體。
在關係數據庫中,它們會留在同一個表中(例如在第一個示例中),並且您會使用ORM的功能將地址抽象爲值對象(如nHibernate的組件功能)?
我意識到幾頁後,他談到了非規範化,我只是想確保我正確理解概念。
感謝您的解釋,這有助於我對這種情況下使用DDD感到更加自信。 – jpierson 2011-03-10 17:19:57