例如,如果我有方法A,它接收4个参数
methodA(String,String,Object,Object)
我认为如果我使用一个对象来包装它们会更清晰。
methodA(ParamObject)
但我不知道它对性能有任何不利影响吗?
答案 0 :(得分:3)
在选择API方法的签名时,性能是您应该担心的最后一件事。一个更重要的问题是API的可读性和可维护性,这可能会因您决定将参数组合在一起而受到严重影响。
首先要考虑的是,对部分或全部参数进行分组是否具有逻辑意义。例如,如果您的API看起来像这样
public void doSomething(String first, String last, Date dob) {
...
}
其中三个参数代表一个人的名字,姓氏和出生日期,然后将API更改为
public void doSomething(Person p) {
...
}
很有道理。
另一方面,如果各个参数彼此无关,除非是作为同一方法的参数,那么只有当你计划用调用做其他事情时,创建一个包含它们的类才有意义参数,例如存储它们供以后使用,将它们作为单个单元转发给其他方法,等等。
否则,您应该保留单个参数,而不是创建特定于参数的类。