独立的请求构建和执行

Separate request building and execution

我有几种具有不同负载(或根本没有负载)的请求。我想将请求构建与其执行分开,因此我有生成抽象请求的 RequestFactory 和具有方法 execute(request) 的 RequestExecutor。问题是请求执行的逻辑与其类型有关,所以我需要这样的案例:

if(request instanceof SomeTypeOfRequest) ((SomeTypeOfRequest) request).getPayload()

另一种方法是在 Request 中使用 execute 方法,但这会导致 RequestFactory 中包含所有 RequestExecutor 依赖项,因为我需要它们来构建请求。我还有哪些其他选择?

好像可以用visitor了。它有点结合了这两种方法。我只需要在 Request 接口中有 execute(RequestExecutor) 方法