微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

域驱动设计 – DDD – 实体应该有平等比较器

Eric Evans在 plural sight视频中说:“我已经开始相信一个实体甚至不应该进行平等比较”.

这是否意味着实体不需要具有必需的Id字段(因为其基础设施问题).在什么情况下需要实体比较?就像他在大多数情况下提到的那样,可能不需要它.

[编辑]当我提到不需要ID时,构建实体是w.r.t,即我可以用新对象(order = new Order)测试我的逻辑而不传递Guid或Id.理想情况下,db会生成持久性Id.

解决方法

从理论上讲,实体不应该关心它的ID;当实体查询或使用自己的ID时,我现在脑海中不会出现用例.

但是,它的ID被外界使用.几乎任何使用实体的客户端代码(演示,应用程序或基础架构)都将使用其ID.如果没有ID,客户端代码将无法在所有实体的集合中找到实体.

甚至Domain层代码也使用该ID.例如,在Aggregate中,Aggregate root在找到嵌套的Entity时使用ID,即使它只是一个简单的整数键.

更新:在现实世界中,作为一个人类实体,当你吃,喝,睡觉或独自做任何事情时,你是否需要你的社会安全号码(或你拥有的任何身份证)?不,它与人体有机体的工作规则无关.其他人类实体需要您将ID与其他人区分开来.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐