非ブロッキング メソッド呼び出しのネストされたシーケンスを作成するための 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 でコーディングするために 2 つのアプローチを試しました。
- 匿名クラス: ネストが必要なため、すぐに見苦しくなります
- 内部クラス: 上記よりもすっきりしていますが、他の開発者が実行の流れを理解するのは依然として困難です
このコードを読みやすくするためのパターンはありますか? たとえば、サービス メソッドを、ネストを処理するフレームワーク クラスによって順番に実行される自己完結型の操作のリストとして表現できますか?