-
12-12-2019 - |
题
我正在检查夏普的架构的代码。到目前为止,它很酷,但我遇到了围绕如何在框架中实现DDD值对象的问题(代码中没有提到这一点)。我假设基本实体类和存储库基础仅用于实体。有关如何在框架中实现值对象的任何想法?
解决方案
在夏普拱门中,命名空间sharkarch.domain.domainmodel中存在一个类valueObject。此对象从BaseObject继承并覆盖==和!=运算符和equals()和gethashcode()方法。该方法覆盖只需调用这两种方法的BaseObject版本,这是又使用GettypespeCificsignAthEproperties()方法来获取在相等比较中使用的属性。
底线是实体的平等由
确定- 参考等立性
- 相同类型?
- id是相同的
- [Domainignature]属性 装饰的所有属性的比较
- 参考等立性
- 相同类型?
- 比较所有公共属性
对于ValueObjects,使用BaseObject的等于方法
这有点简化,我建议您从Github获取最新代码,并通过自己提到的3个课程中的代码读取。
不隶属于 StackOverflow