繁体   English   中英

域驱动设计应用服务

[英]Domain Driven Design Application Services

我对DDD中的应用程序服务有疑问。 例如,我有一条规则,当用户确认注册时,会发生以下操作:

  1. 用户的帐户已更新,以便他可以登录系统。
  2. 用户的余额已初始化。
  3. 用户收到确认登记的确认函。

给定应用程序服务SecurityAppService,它可以在调用其方法ConfirmRegistration()包含以下工作流:

  1. 调用域SecurityService以更新用户的帐户。
  2. 调用域AccountingService来初始化用户的余额。
  3. 调用基础架构EmailService以向用户发送电子邮件。

问题如下。 从SecurityAppService调用AccountingService是否合法? 或者我应该将其包含在对SecurityService的调用中?

您可以使用CQRS模式。

UserManager具有注册(用户用户)方法。 他将添加用户并引发AddUserEvent。 AccountService和EmailService实现EventHandler并通过EventHandlerArgument接收User对象。

因此,SecurityService不知道其他服务,所有这些服务都是独立的。

恕我直言,答案是肯定是合法的。 允许服务在适当时调用其他服务。 在特定示例中,它绝对是您想要做的事情。 真正的问题是你如何管理依赖。 使用DI可以解耦两个实现之间的直接关系。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM