2016-09-20 87 views
0

在我的系統時,一個新的事務添加到系統中,要求具有以下信息將請求提取到多個命令是一種很好的做法嗎?

  • A)是由交易
  • B)如果該交易將通過分期支付的客戶端,分期付款(按月,evvery15天等)的頻率

此外,如果該交易將不分期的分析數據必須得到更新(當月明確的等)支付。

因此,當用戶提交一個新的事務以下必須做

  • 1)添加一個新的客戶,如果在請求的客戶端不存在
  • 2)添加新的交易成數據庫

    ,如果有分期付款

  • 3)添加分期到數據庫

別的

  • 4)更新分析數據

所以解決方案是在我的控制器AddnewTransactionController提取請求轉換成兩個獨立的命令AddNewClientCommandAddNewTransactionCommand並調用相關聯的命令處理程序AddNewClientCommandHadlerAddNewTransactionCommandHandler

此外,AddNewTransactionCommandHandler將有像UpdateanalysisData注入域服務。

從建築的角度來看,上面是否考慮了一個好的解決方案?

回答

1

我通常會希望將這種方法實現爲一個進程,而不是一組命令。

客戶端提交訂單,也就是說我們解決方案邊界外的一些遠程實體爲我們提供了獲得商業價值的機會。所以當務之急是抓住這個機會。 因此,您將這個機會寫入耐用商店,併發布域名事件。

爲了響應域事件,現在可以觸發一堆其他命令(從域事件或商店中機會的表示中提取他們所需的數據)。

+0

你使用了兩次「機會」這個詞。你是什​​麼意思? – dios231

+0

客戶正試圖給你錢。因此(a)你接受它; (b)你第一次參加。你不應該讓你的內箍跳躍干擾顧客給你錢。 – VoiceOfUnreason

相關問題