有几个关于这方面的问题,阅读它们并没有帮助我。在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