嵌套回调的 Java 模式?
我正在寻找一种Java模式,用于进行非阻塞方法调用的嵌套序列。在我的例子中,一些客户端代码需要异步调用服务来执行某些用例,并且该用例的每个步骤本身都必须异步执行(出于本文范围之外的原因)。想象一下,我有如下现有接口:
public interface Request {}
public interface Response {}
public interface Callback<R extends Response> {
void onSuccess(R response);
void onError(Exception e);
}
和 接口有各种配对的实现,即 + (由客户端给出)、+ (由服务内部使用)等。Request
Response
RequestA
ResponseA
RequestB
ResponseB
处理流程如下所示:
在接收每个响应和发送下一个请求之间,需要进行一些额外的处理(例如,基于任何先前请求或响应中的值)。
到目前为止,我已经尝试了两种方法来用Java编写代码:
- 匿名类:由于所需的嵌套,很快就会变得丑陋
- 内部类:比上面的更整洁,但对于其他开发人员来说仍然很难理解执行流程
是否有某种模式可以使此代码更具可读性?例如,我是否可以将服务方法表示为由某个负责嵌套的框架类按顺序执行的独立操作的列表?