我正在重構DDD的應用程序,迄今爲止這麼好,但我對某些責任以及解決問題的最佳方法有疑問。控制器在MVC應用程序上的DDD職責
該應用程序是呼叫中心代理使用的一個Web應用程序,使用CRM功能,後端是一個REST API。
用例如下:代理呼叫一個客戶,需要收集一些信息/提供促銷活動等。 在給客戶打電話並與他交談後,他需要填寫一些信息,該信息是組合框,數據從數據庫中填充數據,並且將帶有實體ID的POST發送到端點以註冊它。因此,我們有一個端點contactAttempt,它接收數據,customerId,agentId,某些組合框信息(subjectId,reasonId,extraInfo1,extraInfo2),額外的信息不會調用該信息,只是爲了簡化。
該信息被反序列化爲傳遞給應用程序服務的DTO對象,該應用程序服務查閱相應的存儲庫以檢查id是否有效並返回實體,如果未找到實體,則會拋出異常控制器通過消息捕獲並回答客戶端。
如果所有的實體都是有效的,就會有一些域規則,比如如果是第一次與客戶聯繫,發送歡迎電子郵件和其他東西。
我懷疑是從存儲庫中獲取實體的這個步驟,它應該是這樣或者我應該在控制器中獲取它,並且如果我需要的只是存在的話,那麼我只需將它傳遞給域服務邏輯需要應用業務規則?
- 上述方法的優缺點是什麼?
- 還有其他方法嗎?
- 在MVC的背景下,Controller的職責是什麼?
Mvc與DDD不兼容*。 –
另外,你指的是什麼樣的服務?域名服務? –
關於mvc,好的,只是考慮一個控制器,它將接收到一個請求,我正在討論從dB,控制器,應用服務或域服務中獲取實體的邏輯的位置 –