1

我正在尝试在我的应用程序中实现干净的架构。我可以LoadItemsInteractor从存储库中加载所有项目,也可以LoadItemsByIdInteractor通过 id 加载项目。

我有一个方法,过滤接收到的项目,两个交互者共享它。我想知道我应该把这段代码放在哪里。选项:

  • Utils具有静态方法的类filter,两个交互者都会在将值返回给演示者之前调用它
  • BaseLoadItemsInteractor创建实现方法的抽象filter并从中继承两个交互器。
  • 创建并FilterItemsInteractor传递执行结果(来自演示者或具体交互者内部)。LoadItemsInteractorLoadItemsByIdInteractor

实现这一点的最干净的方法是什么?

4

2 回答 2

1

您可以将两个交互器统一为一个,并通过过滤器发送 id 和您要过滤的其余对象以将其发送到存储库,从而节省您重复的代码。最后 loadItems 是用例,byId 是过滤器,它将 id 添加到过滤器并将交互器统一为一个。

于 2017-11-03T11:36:26.397 回答
0

从一些数据存储中简单地加载某些东西属于接口适配器的圈子,通常称为存储库。您应用于加载数据的所有逻辑都属于一个交互器。如前所述,如果不违反 SRP,Interactor 可以有多种方法。

于 2018-02-24T06:26:34.777 回答