我正在寻找一种Java模式来制作嵌套的非阻塞方法调用序列.在我的例子中,一些客户端代码需要异步调用服务来执行某些用例,并且该用例的每个步骤本身必须异步执行(出于此问题范围之外的原因).想象一下,我现有的接口如下:
public interface Request {}
public interface Response {}
public interface Callback<R extends Response> {
void onSuccess(R response);
void onError(Exception e);
}
Run Code Online (Sandbox Code Playgroud)
有Request和Response接口的各种配对实现,即RequestA+ ResponseA(由客户端给出),RequestB+ ResponseB(由服务内部使用)等.
处理流程如下所示:

在接收到每个响应和发送下一个请求之间,需要进行一些额外的处理(例如,基于任何先前请求或响应中的值).
到目前为止,我已经尝试了两种在Java中编码的方法:
是否有一些模式可以使这些代码更具可读性?例如,我可以将服务方法表示为一个自包含操作的列表,这些操作由一些负责嵌套的框架类按顺序执行吗?