我应该将方法的所有参数包装到包装器类吗?

时间:2016-01-25 15:42:17

标签: java

例如,如果我有方法A,它接收4个参数

methodA(String,String,Object,Object)

我认为如果我使用一个对象来包装它们会更清晰。

 methodA(ParamObject)

但我不知道它对性能有任何不利影响吗?

1 个答案:

答案 0 :(得分:3)

在选择API方法的签名时,性能是您应该担心的最后一件事。一个更重要的问题是API的可读性和可维护性,这可能会因您决定将参数组合在一起而受到严重影响。

首先要考虑的是,对部分或全部参数进行分组是否具有逻辑意义。例如,如果您的API看起来像这样

public void doSomething(String first, String last, Date dob) {
    ...
}

其中三个参数代表一个人的名字,姓氏和出生日期,然后将API更改为

public void doSomething(Person p) {
    ...
}

很有道理。

另一方面,如果各个参数彼此无关,除非是作为同一方法的参数,那么只有当你计划用调用做其他事情时,创建一个包含它们的类才有意义参数,例如存储它们供以后使用,将它们作为单个单元转发给其他方法,等等。

否则,您应该保留单个参数,而不是创建特定于参数的类。