Domain driven design 检测对域对象的更改

Domain driven design 检测对域对象的更改,domain-driven-design,dns,Domain Driven Design,Dns,有一个实体:Customer,如果客户更改了他的姓名(通过Web UI),客户服务必须检测到此更改并向管理员发送电子邮件 现在是否应将此职责分配给客户?差不多 c、 HasChangedName(新名称);其中c是对客户的引用 根据客户实体的此类变更,CustomerService可能会开展其他活动。电子邮件只是一个例子。我认为,客户聚合根(我认为它是聚合根,而不是实体)应该在 customer.ChangeName(string newname) 方法调用 您可以在Greg Young的g

有一个实体:Customer,如果客户更改了他的姓名(通过Web UI),客户服务必须检测到此更改并向管理员发送电子邮件

现在是否应将此职责分配给客户?差不多

c、 HasChangedName(新名称);其中c是对客户的引用


根据客户实体的此类变更,CustomerService可能会开展其他活动。电子邮件只是一个例子。

我认为,客户聚合根(我认为它是聚合根,而不是实体)应该在

customer.ChangeName(string newname) 
方法调用

您可以在Greg Young的github存储库中查看。
或者,如果不想使用事件源,您可以看看Udi Dahan的

,我认为,Customer aggregate root(我认为它是一个聚合根,而不是一个实体)应该在

customer.ChangeName(string newname) 
方法调用

您可以在Greg Young的github存储库中查看。
或者,如果你不想使用事件源,你可以看看Udi Dahan的

听起来像是逻辑,你只需要插入控制器层逻辑,而不是实体。听起来像是逻辑,你只需要插入控制器层逻辑,而不是实体。当然,客户是聚合根,非常感谢你的展示!!!!你能给我指出一些更多的基于域事件的主题吗?这是我听到埃里克·埃文斯谈论的一件事,但我从不关心它的用途。我想更多地了解我可以使用它的各种场景。+1使用域事件是解决这个问题的有效方法。我同意上面的回答。域事件使聚合根客户可以控制何时发送通知。它还为您提供了一个干净的模型,并将基础设施层中类似于电子邮件的基础设施技术放在了一起。您可以查看使用一些域事件和Asp.net mvc的dddsample.net。@GeorgeKT这里有一些来自Greg Young()、Udi Dahan的另一篇文章()、Martin Fowler的文章()和Mark Nijhof的文章()。当然,客户是聚合根,非常感谢大家的关注!!!!你能给我指出一些更多的基于域事件的主题吗?这是我听到埃里克·埃文斯谈论的一件事,但我从不关心它的用途。我想更多地了解我可以使用它的各种场景。+1使用域事件是解决这个问题的有效方法。我同意上面的回答。域事件使聚合根客户可以控制何时发送通知。它还为您提供了一个干净的模型,并将基础设施层中类似于电子邮件的基础设施技术放在了一起。您可以检查使用一些域事件和Asp.net mvc的dddsample.net。@GeorgeKT有一些来自Greg Young()、Udi Dahan的另一篇文章()、Martin Fowler的文章()和Mark Nijhof的文章()。