【问题标题】:Domain driven programming and events领域驱动的编程和事件
【发布时间】:2023-12-18 10:15:01
【问题描述】:

我正在使用 DDD 进行一些 asp.net mvc 编码。我有代表处理获取和添加它们的业务实体和服务存储库的对象。我是新手,随着我的应用程序的增长,我开始看到许多由于添加、删除或更改域对象/数据而必须运行的辅助代码。

我想创建一个事件驱动系统,其中一个操作触发其他部分代码运行。例如,当我删除一个用户时,我希望能够为该操作订阅许多其他内容,以便在删除发生时它们都运行。

您如何编写应用程序来处理这些情况?如何为我的问题建立一个可靠且连贯的 OO 系统?我已经了解事件和委托,但我对编码技术和良好实践更感兴趣。

【问题讨论】:

  • 在 .net 中,这通常通过接口 INotifyPropertyChanged 和 IObservableCollection 完成。很多DataSet-gui-Magic都是这样实现的。

标签: asp.net-mvc domain-driven-design


【解决方案1】:

您可能想要查看的东西是所谓的domain events。基本上想法是域模型本身会触发特定于域的事件(例如CustomerRegistered)以及几乎任何您喜欢的东西都可以订阅它们以在域之外执行其他操作。

Udi Dahan 在这方面写了一些不错的文章:1st2nd3rd

另外 - Szymon 的 sample application 对此非常有解释性。

CQRS 很棒,但它会影响整个架构。可能有点矫枉过正。

【讨论】:

  • 这个答案与我想实施的事情一致
  • 这是一个非常好的答案。感谢分享这些文章 Arnis。我无法通过 Google 找到它们。谢谢!
最近更新 更多