我正在尝试在我的应用中实现干净的架构。
我有LoadItemsInteractor
从存储库加载所有项目,我还有LoadItemsByIdInteractor
按ID加载项目。
我有一个方法,可以过滤收到的项目,并且两个交互者共享它。我想知道我应该在哪里放置这段代码。选项:
Utils
的filter
类,两个交互者在将值返回给演示者之前调用它BaseLoadItemsInteractor
方法的抽象filter
并从中继承两个交互者。FilterItemsInteractor
并传递LoadItemsInteractor
和LoadItemsByIdInteractor
执行结果(来自演示者或具体交互者内部)。实施此方法的最简洁方法是什么?
答案 0 :(得分:1)
您可以将两个交互器统一在一个中,并通过过滤器发送id和要过滤的其余对象以将其发送到存储库,从而节省重复的代码。最后,loadItems是用例,byId是一个过滤器,它将id添加到过滤器并将交互器统一为一个。
答案 1 :(得分:0)
来自某个数据存储的某些东西的普通加载属于接口适配器的圈子,通常称为存储库。适用于加载数据的所有逻辑属于Interactor。如前所述,如果不违反SRP,Interactor可以有多种方法。