我正在創建一個銀行應用程式。目前,有一項主要服務,即交易服務。該服務允許通過 id 獲取交易,并創建交易。為了創建交易,我首先想檢查交易是否有效,通過檢查它試圖從中扣除的賬戶的余額,看看他們是否有足夠的余額。現在我正在做
TransactionController呼叫TransactionService。TransactionService創建Transaction,然后檢查這是否是一個有效的交易。在這一點上,我創建了一個AccountsService,它查詢AccountsRepository,回傳一個Account。然后我根據Account.balance > Transaction.amount.
我在這里意識到TransactionServicecreate 方法依賴于AccountServiceget 方法。此外,AccountService永遠不會直接從控制器呼叫。
這是架構師的好方法,還是有更優雅的方法來做到這一點?
uj5u.com熱心網友回復:
在你的情況下,我會說沒關系,因為我想如果Account.balance < Transaction.amount你真的不想繼續交易。因此,您必須在某個時候從 中獲取所需的資料AccountService,這是沒有辦法的。
如果你只是想觸發一些副作用任務(比如發送電子郵件或其他東西),你可以依靠基于事件的方法TransactionService來發布一個事件,假設NotificationsService會在某個時間點對它做出反應并做它的事情.
uj5u.com熱心網友回復:
你的邏輯看起來不錯。如果您只需要來自交易服務(或其他服務)的帳戶服務,這是有效的。如果邏輯沒有意義,則無需從控制器呼叫帳戶服務即可。事實上,一些從控制器呼叫的服務可能會呼叫許多其他服務——例如電子郵件服務、文本訊息服務等。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/373460.html
