Domain driven design 关于域事件,我仍然感到困惑

Domain driven design 关于域事件,我仍然感到困惑,domain-driven-design,Domain Driven Design,a) 假设我们不使用IoC,处理程序应该在哪里注册?在应用层中 b) 也许这是一个无用的问题,但这是否是这样一种设计的一部分原因,即处理程序的Handle方法将域事件作为参数,因为这样我们可以显式地声明正在处理哪个域事件,并且如果参数以域模型的形式表示,这也会使代码更容易理解 (c) 域事件是一个角色,因此应该显式表示 作者所说的“域事件是一个角色”是什么意思 多谢各位 更新: (a) 在IoC术语中,将是应用程序的组成根 我不太明白你想表达什么 (b) 是的,尽管我不完全理解你的问题。会是什么

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

b) 也许这是一个无用的问题,但这是否是这样一种设计的一部分原因,即处理程序的
Handle
方法将域事件作为参数,因为这样我们可以显式地声明正在处理哪个域事件,并且如果参数以域模型的形式表示,这也会使代码更容易理解

(c)

域事件是一个角色,因此应该显式表示

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

多谢各位

更新:

(a)

在IoC术语中,将是应用程序的组成根

我不太明白你想表达什么

(b)

是的,尽管我不完全理解你的问题。会是什么 替代方案

我并不是说Udi提出的设计可以替代将事件作为参数传递,我只是好奇这个设计是否也带来了我在b)

(c)

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

我没有读过第16章和第17章(埃文斯的书),因为我怀疑我是否会在短期内参与大型项目,但据我所知,埃文斯的书没有涉及这一主题(我并不是说这不是一个重要的主题,我只是好奇我是否设法忽略了这个主题)?

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

b) 是的,尽管我不完全理解你的问题。另一种选择是什么

c) 角色的概念基于这样一种想法,即单个对象可以根据上下文扮演多个角色。请看作者的演示文稿:

更新

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

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


c) 这本书的这些部分涵盖了一些非常重要的DDD概念。事实上,埃文斯本人也不赞成将DDD的战略方面放在一开始。看看这一系列的新书


然而,就角色而言,我认为埃文斯在书中并没有明确提到这一点。它与DDD的关系不如与OOP的关系大。

我一直在考虑购买实现域驱动设计的产品,因此您能否就这本书在不了解SaaS、Scrum、SOA和CQR的人手中的用处发表您的看法(我问了作者同样的问题,但没有得到回答-我想他不想承担责任:D)?“这本书的这些部分涵盖了一些非常重要的DDD概念”你的意思是,在设计小型DDD应用程序时,这些战略方面也很重要?它们甚至适用于小型应用程序。最重要的是要了解多个有界上下文的潜力。这可能会对你的模型产生重大影响。IDDD书籍是一个很好的资源。我可能会有偏见,因为作者是我和我帮助审阅了这本书,但它确实值得一看。不需要了解SaaS、Scrum、SOA和CQRS。事实上,这些主题都包含在这本书中,以及它们与DDD的关系。