gpt4 book ai didi

java - 整洁架构 : Combining Interactors

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:08:37 25 4
gpt4 key购买 nike

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

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

我是否可以使用一个名为 getAllAlbums 的交互器来执行其运行 block 中的前两个交互器?

@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",它可能是最好的选择。

我的推理如下:

  1. 单一职责:如果您不能聚合用例,那么每个用例都不能真正是单一职责。没有聚合,这意味着域逻辑最终会出现在表示层中,从而达不到目的。
  2. DRY:可以共享用例,应该在有意义的地方。只要用例的 Intent 是相同的。显然,这应该在做之前考虑清楚。根据我的经验,除了下一点之外很少需要这样做。
  3. Orchestrator 类:例如,如果您需要获取多个数据源并保存到存储库。需要一个将运行所有这些子用例的用例,以确保正确实现操作顺序和并发性等内容。我认为这是调用其他用例的最有说服力的理由。

为了保持单一职责,我会考虑限制聚合用例以仅执行此操作,即执行这些用例并进行任何最终转换。

考虑到这个问题的年代,我很想知道您是如何处理这个问题的,以及您遇到的问题。

关于java - 整洁架构 : Combining Interactors,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43803666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com