Java 为什么在活动之前将外部请求类转换为内部请求类?

Java 为什么在活动之前将外部请求类转换为内部请求类?,java,oop,design-patterns,service,rpc,Java,Oop,Design Patterns,Service,Rpc,在执行CRUD工作之前,将外部请求类转换为内部请求类的原因是什么 示例代码: public GetResponse(ExternalRequest request) { InternalRequest internalRequest = RequestContextBuilder.buildRequest(request); InternalResponse = solve(internalRequest); } 有人能告诉我为什么不直接使用外部请求来执行活动吗?外部和内部请求

在执行CRUD工作之前,将外部请求类转换为内部请求类的原因是什么

示例代码:

public GetResponse(ExternalRequest request) {
    InternalRequest internalRequest = RequestContextBuilder.buildRequest(request);
    InternalResponse = solve(internalRequest);
}

有人能告诉我为什么不直接使用外部请求来执行活动吗?外部和内部请求类的细节元素相同。

如果没有更多的上下文,很难给出答案。但这里有一些我可以想象的原因

  • 解耦

    solve
    方法与
    ExternalRequest
    类没有依赖关系。它只取决于
    内部请求
    InternalRequest
    可能是使用不同的输入生成的,然后是
    ExternalRequest
    。因此,如果您只需创建一个
    InternalRequest
    ,就可以调用
    solve
    方法

  • 验证

    也许,
    RequestContextBuilder.buildRequest
    比创建另一个对象做得更多。在创建
    InternalRequest
    之前,它可能会验证
    ExternalRequest
    的值。作者可能希望表示
    InternalRequest
    只有有效值。在这种情况下,它将使
    solve
    方法的实现更容易,因为
    solve
    方法可以依赖
    内部请求
    有效这一事实。它不能检查所有属性


您能提供更多的上下文吗?没有它,我们只能说是“脱钩”。