簡體   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