0

a) 假设我们不使用 IoC,应该在哪里注册处理程序?在应用层

b)也许是一个无用的问题,但这是处理程序的 Handle方法将域事件作为参数的设计的部分原因,因为这样我们明确说明正在处理哪个域事件,并且如果参数被表达,它也使代码更容易理解就领域模型而言?

c)

领域事件是一个角色,因此应该明确表示

作者所说的“领域事件是一个角色”是什么意思?

谢谢

更新:

一个)

在 IoC 术语中,with 将是您的应用程序的组合根。

我不太明白你在这里要传达什么?!

b)

是的,虽然我不完全理解你的问题。什么是替代方案?

我并不是暗示 Udi 提出的设计可以替代传递事件作为参数,我只是好奇这种设计是否也带来了我在b)中提到的好处

C)

角色的概念基于单个对象可以根据上下文扮演多个角色的想法。

我没有读过第 16 章和第 17 章(埃文斯的书),因为我怀疑我是否会很快参与大型项目,但据我所知,埃文斯的书并没有涵盖这个主题(我并不是暗示这是不是重要的话题,我只是好奇我是否设法忽略了这个话题)?

4

1 回答 1

1

a) 处理程序应该在注册其他依赖项(例如存储库)的相同位置注册。在 IoC 术语中,with 将是您的应用程序的组合根。

b)是的,虽然我不完全理解你的问题。什么是替代方案?

c) 角色的概念基于单个对象可以根据上下文扮演多个角色的想法。看看作者的介绍:使角色显式

更新

a) 它基本上是指在您的应用程序中配置所有依赖项的位置。在一个简单的控制台应用程序中, with 将位于 Main 方法的开头附近。在 ASP.NET 应用程序中,它将在处理应用程序启动的方法中。看看这个问题

b) 是的,IMO 它确实带来了这些好处,但再次注意处理程序类本身并不是有趣的部分,它也可以是一个 lambda。

c) 本书的这些部分涵盖了一些非常重要的 DDD 概念。事实上,Evans 本人对于没有将 DDD 的战略方面放在开头也有些遗憾。查看实现领域驱动设计系列中的新书。

然而,就角色而言,我认为 Evans 并没有在书中明确涵盖它。它与 DDD 的关系不如与 OOP 的关系那么大。

于 2013-02-14T19:22:55.867 回答