Java模式的优点是,方法将对象作为参数而不是单个参数

Java模式的优点是,方法将对象作为参数而不是单个参数,java,amazon-web-services,amazon-glacier,Java,Amazon Web Services,Amazon Glacier,我一直在通过Amazon Java SDK使用Amazon Glacier 令我震惊的是,参数是通过对象传递的,而不是作为单个参数传递的 例如,要检索作业的输出,其中参数为Vault、JobId、range,请使用以下技术: client.getJobOutput(new GetJobOutputRequest(Vault, JobId, range)); 而不是: client.getJobOutput(Vault, JobId, range); 这两种方法的优点和缺点是什么?优点: 如果

我一直在通过Amazon Java SDK使用Amazon Glacier

令我震惊的是,参数是通过对象传递的,而不是作为单个参数传递的

例如,要检索作业的输出,其中参数为Vault、JobId、range,请使用以下技术:

client.getJobOutput(new GetJobOutputRequest(Vault, JobId, range));
而不是:

client.getJobOutput(Vault, JobId, range);
这两种方法的优点和缺点是什么?

优点:

  • 如果您的方法接受许多参数,则使用参数对象可以使方法签名正常
  • 如果以后要为方法获取其他参数,则使用参数对象意味着您只需在param对象中添加另一个字段,并且方法签名无需更改
  • 如果需要该方法的批处理版本,只需传递一个param对象列表
  • 缺点:

  • 额外冗长
  • 另一个间接层次

  • +1公共方法(例如web服务)中的方法签名可扩展性。无论您需要将参数添加到方法还是param类中。您仍然需要重新编译一些东西,并为客户端提供新的接口。对于web服务,客户端需要从WSDL生成新的存根。当然,您可以使用
    映射
    ,但这种方法是非常错误的。