2017-07-05 30 views
1

我想在我的應用程序中實現乾淨的架構。 我有LoadItemsInteractor加載來自存儲庫的所有項目,我也有LoadItemsByIdInteractor通過ID加載項目。過濾Interactors的最乾淨的方式結果

我有一個方法,過濾收到的項目,並且兩個交互器共享它。我想知道我應該在哪裏放置這段代碼。選項:

  • Utils類的靜態方法filter,兩者交互器調用其返回值之前,主持人
  • 創建抽象BaseLoadItemsInteractor實現filter方法,並從它繼承兩者相互作用者。
  • 創建FilterItemsInteractor並傳遞LoadItemsInteractorLoadItemsByIdInteractor執行的結果(從演示者或混凝土互動器內部)。

執行此操作最簡潔的方法是什麼?

+0

在我看來,過濾和'findById'屬於存儲庫。我從來沒有聽說過包含「Interactor」的命名公約。交互者是businesslogic/modell的實現細節嗎? – k3b

+0

@ k3b在某些來源上,它們被稱爲UseCases – mol

回答

1

您可以將兩個交互器統一爲一個,並通過過濾器發送要過濾的ID和剩餘對象以將其發送到存儲庫,從而爲您節省重複代碼。最後loadItems是用例,byId是一個過濾器,它將id添加到過濾器並將交互器合併爲一個。

0

來自某些數據存儲的某些東西的普通加載屬於接口適配器的圈子,通常稱爲存儲庫。所有適用於加載數據的邏輯都屬於Interactor。如前所述,如果這不違反SRP,Interactor可以有多種方法。

相關問題