我最近偶然发现了Bob叔叔的Clean Architecture,我很想知道交互器是否可以执行其他交互器。

例如,到目前为止,这些是我的交互器:getEmptyAlbums,getOtherAlbums。两者都具有分别返回专辑列表(专辑模型的ArrayList)的回调。

我是否可以让一个名为getAllAlbums的Interactor在其run块中执行前两个Interactor?

@Override
public void run() {
    getEmptyAlbums.execute();
}

void onEmptyAlbumsReceived(ArrayList<Album albums){
     getOtherAlbums.execute;
}
void onOtherAlbumsReceived(ArrayList<Album albums){
         mMainThread.post(new Runnable() {
         callback.onAlbumsReceived(albums);
     }
});

最佳答案

我一直在思考同样的事情,在对该主题进行了很少的了解之后,我得出的结论是:"is",这可能是最好的选择。

我的推理如下:

  • 单一职责:如果您不能汇总用例,那么每个案例都不是真正的单一职责。如果没有聚合,则意味着域逻辑最终会出现在表示层中,从而达不到目的。
  • DRY:用例可以共享,并且应该在有意义的地方。

  • 为了保留单一职责,我将考虑限制汇总用例仅执行此操作,即执行这些用例并进行任何最终转换。

    鉴于这个问题的年代久远,我很想知道您处理此问题的方式以及遇到的问题。

    10-07 19:30
    查看更多