当前位置: 首页 > 知识库问答 >
问题:

DDD中是否存在应用程序事件术语?

夹谷岳
2023-03-14

共有1个答案

骆文彬
2023-03-14

我想你应该从另一个角度来看这件事。听我解释。

与其将事件作为处理副作用的结果引发,例如发送电子邮件,不如将事件引发为您所描述的域事件。

然后,在处理这个特定的域事件时,您可以引发一个“应用程序事件”(我称之为集成事件),它将处理发送电子邮件、执行监视、日志记录的副作用…

此集成事件可以跨越多个BC、服务甚至应用程序。

分步流程示例

  1. 开始执行usecasea
  2. 对实体执行操作、更改状态等
  3. 从域引发域事件
  4. 在执行useCasea结束之前分派域事件
  5. 在一个或多个域事件处理程序中捕获域事件
  6. 在其中一个处理程序中,引发集成事件以处理“应用程序范围内”的副作用
  7. 在集成事件处理程序中处理集成事件,并发送电子邮件、进行日志记录、通知监视等
 类似资料:
  • 一些DDD书籍如[1]指出,尽管我们有一个域模型,但我们可以有几个应用程序服务层(有些使用术语服务层)。这是由于应用程序层是应用程序的特定UI到域模型和基础结构层之间的接口,因此,如果我们有多个用户界面与后端一起工作,可能会有多个应用程序服务层。这一点向我提出了一个问题,即在哪里定位应用程序层。 我正在用。NET C#创建一个应用程序。整个应用程序位于一个解决方案中,其中UI(我们有三个不同的wi

  • 在我的应用程序中,我有以下层: 表示层 Web服务层 应用程序服务层 域层 基础结构层

  • 问题内容: 我已经看到了设置tkinter程序的两种基本方法。有什么理由更喜欢另一种吗? 和 问题答案: 我更喜欢*的选项是从Tk类继承。我认为这是更合理的选择,因为窗口实际上是您的应用程序。来自继承,没有任何我更有意义,然后继承或或。由于您只能有一个根,因此这就是您继承的根。 我还认为,如果您执行导入操作而不是,它会使代码更具可读性。然后,您所有的呼叫都明确提及该模块。我不建议所有模块都使用此功

  • 问题内容: 有没有一种方法可以检查jQuery中是否存在事件?我正在使用自定义命名空间事件的插件,并且希望能够检查事件是否绑定到元素。 问题答案: $(‘body’).click(function(){ alert(‘test’ )}) 您可以通过将对象引用(虽然不是jQuery对象)馈送到$.data进行检查,并为第二个参数馈送“事件”,这将返回一个填充有所有事件(例如“点击”)的对象。您可以遍

  • 问题内容: 我是Spring的新手,我想知道是否可以在同一应用程序中使用多个事务管理器? 我有两个数据访问层-一个用于两个数据库。我想知道,你如何在一个层使用一个事务管理器,而在另一层使用另一个事务管理器。我不需要在两个数据库之间都执行事务。但是我确实需要分别在每个数据库上执行事务。我创建了一个图像来帮助概述我的问题: 这是我的应用程序上下文配置: 这是使用此配置的示例: 因此,对于帐户存储库,我

  • 问题内容: 我正在开发一个简单的应用程序来使用Swing管理业务的运营部分,但是我需要在应用程序退出时执行以下操作: 但是我该怎么办呢? 问题答案: 适用于任何Java应用程序(Swing / AWT / Console)