有一个实体:客户,如果客户更改了他的名字(通过Web UI),客户服务必须检测到此更改并向管理员发送电子邮件。
现在应该将此责任分配给客户吗?像
这样的东西c.HasChangedName(新名称);其中c是对客户的引用
CustomerService可能会根据对Customer实体的此类更改进行其他活动。电子邮件只是一个例子。
答案 0 :(得分:4)
根据我的观点,客户聚合根(我认为它是聚合根而不是实体)应该在
中发布CustomerNameChanged事件customer.ChangeName(string newname)
方法调用。
你可以在Greg Young的github存储库中查看some implementation sample。 或者,如果您不想使用事件采购,您可以查看Udi Dahan的post about domain events