我在一些领域对象模型中看到,为了获得其标识,创建了一个抽象基类(实现了Equals和GetHashCode),供所有领域实体对象继承。
我不清楚为什么需要这个基类,以及何时和为什么应该使用它。您能为我提供一些见解或引用一些相关链接吗?
现在我明白了重写相等性的优点(这个链接有帮助:http://en.csharp-online.net/CSharp_Canonical_Forms—Identity_Equality)。
回到领域驱动设计,我想进一步扩展我的问题:
我有一个客户实体,我使用guid作为标识。
如果我创建两个具有完全相同详细信息的客户实例,由于我使用guid作为标识,它们将是两个不同的对象。但是,由于它们具有相同的属性,它们应该是同一个对象(或者将它们保持独特和分开是更好的DDD实践?)
我试图理解是否应通过它们的完整属性值匹配来处理两个对象的相等性。如果我朝着这个方向前进,那么我就要在子类级别上覆盖基类的相等性并实现这些条件,或者将实体的标识设置为这些属性值的字符串或哈希码表示,并使用基类的相等性。
我可能有点偏离主题,所以提前感谢您的耐心。
我不清楚为什么需要这个基类,以及何时和为什么应该使用它。您能为我提供一些见解或引用一些相关链接吗?
现在我明白了重写相等性的优点(这个链接有帮助:http://en.csharp-online.net/CSharp_Canonical_Forms—Identity_Equality)。
回到领域驱动设计,我想进一步扩展我的问题:
我有一个客户实体,我使用guid作为标识。
如果我创建两个具有完全相同详细信息的客户实例,由于我使用guid作为标识,它们将是两个不同的对象。但是,由于它们具有相同的属性,它们应该是同一个对象(或者将它们保持独特和分开是更好的DDD实践?)
我试图理解是否应通过它们的完整属性值匹配来处理两个对象的相等性。如果我朝着这个方向前进,那么我就要在子类级别上覆盖基类的相等性并实现这些条件,或者将实体的标识设置为这些属性值的字符串或哈希码表示,并使用基类的相等性。
我可能有点偏离主题,所以提前感谢您的耐心。