2

我有两个聚合根... AR1 和 AR2。AR1 拥有对 AR2 实例的引用 (ID) 集合。在其中一个 AR1 方法中,会引发域事件以更新 AR2 实例的集合。使用此处提到的技术在事务完成后引发域事件:http ://www.jayway.com/2013/06/20/dont-publish-domain-events-return-them一切都按预期工作。

我的问题是:我从域事件调用以更新 AR2 的方法当前是公共的(不能是内部的),因为域事件正在我的应用程序服务层中执行(与我的业务逻辑层不同的程序集)。我只希望这个方法由域事件执行,而不是别的。

我该怎么做呢?

4

1 回答 1

1

您可以要求事件对象作为 AR2 方法的参数。这将是一个很好的指标,表明该方法只能作为引发事件的结果来调用。

public void someMethod(SomeOccuredEvent event)

我们可以在实施最终一致性部分的有效聚合设计第三部分中看到这种方法。

于 2014-11-27T17:05:43.960 回答