- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在实现领域事件时,事件处理程序应该只用于纯粹的领域问题;您将与业务专家讨论的内容,或者他们是否愿意被对域模型感兴趣的任何人使用?
这可能最好用一个简单的例子来解释,考虑一个用于为员工安排工作的日历应用程序。
我们可能有以下领域事件...
已添加预约
预约已删除
约会内容已更改
约会已移动
我们有这些事件的处理程序,例如,当约会被移动到员工工作时间以外的时间时,我们会设置警告标志。
当然也有对这些事件感兴趣的应用程序问题,例如将约会添加到日历后,我们应该将其添加到工作单元,以便稍后提交更改。
这些应用程序应该关注领域事件的消费者,还是应该引发和处理单独的系统事件?
最佳答案
在 DDD 解决方案中,有两种成熟的使用事件的方法。
第一个是基于Udi Dahan的articles about events .如果您还没有阅读过它们,我强烈建议您阅读。总之,它表示您使用静态类 发布事件。除了正常的 ORM 风格的行为。所以你添加一个订单到客户的订单集合 和 你发布事件。因为您的域行为是在事务范围内执行的,所以事件处理程序也是如此。您还可以在那里找到并建议不要手动将对象附加到工作单元。新的聚合根应该通过调用现有的行为来创建。
还有另一种选择是由 Greg Young 提出的。它基于事件源,它基本上使用事件作为持久状态的手段。在这种方法中,您的聚合根通常使用一些基础设施(例如基本聚合根类)来应用事件。 Apply 确实在聚合根类 上调用事件处理程序和 在总线上发布此事件(无论您使用什么总线实现)。
关于architecture - 领域事件处理程序 - 它们应该用于应用层问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4631697/
理论上,一般来说: 数据访问层保存数据库连接和查询。 业务层保存模型和逻辑。 服务层包含应用程序服务的主要服务。 表示层保存网站。 我说得对吗?我错过了什么吗? 什么是基础设施层? 最佳答案 是的,我
我知道 Android 没有像 Activity 具有 onPause 那样的应用程序级 onPause,但看起来我需要类似的功能。我刚才问了一个(愚蠢的)问题(http://stackoverflo
2022-12-04 18:31:01 纪念一下博主的《漫谈计算机网络》连载博客 浏览量破500了. 今天更新完结篇. 面试答不上?计网很枯燥? 听说你学习 计网 每次记了都会忘? 不妨抽时间和我
我一直在尝试构建一个基于 DDD 的应用程序,但我有一些问题。 我有一些层:- 表示层 - MVC- 应用层- 域层... 首先,我想知道我是否可以在ApplicationLayer中执行此操作(获取
我想知道如果我创建一个 OkHttpClient 实例来服务我的“整个 android 应用程序”,是否会出现任何性能瓶颈或问题。即在我的 Application 类中,我创建了一个包含 OkHttp
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 3年前关闭。 Improve this qu
我是一名优秀的程序员,十分优秀!