【问题标题】:Advantage of Java Pattern where method takes Object as a parameter instead of individual parametersJava模式的优点,其中方法将对象作为参数而不是单个参数
【发布时间】:2012-08-30 02:56:17
【问题描述】:

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

我很惊讶参数是通过对象传递的,而不是作为单独的参数。

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

client.getJobOutput(new GetJobOutputRequest(Vault, JobId, range));

代替:

client.getJobOutput(Vault, JobId, range);

这两种方法的优缺点是什么?

【问题讨论】:

标签: java amazon-web-services amazon-glacier


【解决方案1】:

优点:

  1. 如果您的方法采用许多参数,则使用参数对象可以使方法签名更加合理。
  2. 如果您以后想为方法获取额外的参数,使用参数对象意味着您只需在 param 对象中添加另一个字段,方法签名无需更改。
  3. 如果您需要该方法的批处理版本,只需传递参数对象列表即可。

缺点:

  1. 额外的冗长
  2. 另一个级别的间接性

【讨论】:

  • +1 公共方法(例如 Web 服务)中的方法签名可扩展性。
  • 至于第 2 点。不管你需要在方法或参数类中添加参数。你仍然需要重新编译一些东西并向客户端提供新的接口。对于 Web 服务,客户端需要从 WSDL 生成新的存根。当然你可以使用Map<String, Object>,但是这种方法是非常错误的。
猜你喜欢
  • 2018-04-13
  • 2020-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多