我見過MVP架構的好例子(here和here)。兩者都只呈現簡單的交互器,但我想知道如何處理更復雜的用例,其中包含步驟,這些步驟在其他用例中重複出現。在乾淨的MVP中,誰應該處理組合交互者?
例如,我的API需要令牌來驗證任何電話。我創建了一個交互器來獲取該令牌(GetToken
)。我想獲取用戶的最後一次登錄日期(GetLastLoginDate
),然後獲取該日期和當前發生的更改列表(GetVersionChanges
)。
這些交互器應該鏈接在哪裏?我想讓它們分開,因爲它們中的一些在代碼的其他部分被重用。我提出了兩種解決方案。
演示者應鏈接所有的交互器。這種解決方案只要用例不復雜並且沒有許多先決條件就可以工作。在我看來,這不是正確的地方,因爲它給主持人帶來了另一種責任。
交互器可以使用許多庫(沒有乾淨的建築規則被打破,然後)。爲什麼不在其他交互器中使用
TokenRepository
?因爲獲取令牌要比到達存儲庫複雜得多。重複其他交互器中的步驟不會重複使用已有的代碼。
這兩種解決方案都有缺陷,違背了基本原則(DRY,單一責任原則)。
如果您想查看詳細示例,請在此處填寫以下主題:https:// plainionist。 github.io/Implementing-Clean-Architecture-UseCases/ – plainionist