我最近偶然发现了Bob叔叔的Clean Architecture,我很想知道Interactors是否可以执行其他Interactors.
例如,截至目前,这些是我的Interactors:getEmptyAlbums,getOtherAlbums.两者都具有分别以Album列表(Album模型的ArrayList)返回的Callback.
我是否允许有一个名为getAllAlbums的Interactor在其运行块中执行前两个Interactors?
@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); } });
解决方法
我一直在思考同样的事情,在对这个问题发现很少之后,我得出结论“是”这可能是最好的选择.
我的推理如下:
>单一责任:如果您无法汇总用例,那么每个人都不能真正承担单一责任.如果没有聚合,则意味着域逻辑最终会出现在表示层中,从而无法实现目的.
>干:用例可以共享,应该在有意义的地方.
为了保持单一责任,我会考虑限制聚合用例只做那些,即执行那些用例并进行任何最终转换.
鉴于这个问题的年龄,我有兴趣知道你采用了哪种方式以及遇到的问题.