【发布时间】:2016-11-03 15:19:40
【问题描述】:
我经常发现自己将一个变量传递给一个方法,该方法不直接使用,而是传递给另一个方法进行进一步处理。我也不知道这种做法有没有名字。我可以用示例代码更好地解释它:
static void main() {
int a = method1(var1, var2, var3)
}
int method1(int var1, int var2, int var3) {
var4 = some_function_of(var1, var2)
return method2(var3, var4)
}
int method2(int var 3, int var4) {
return some_other_function_of(var3, var4)
}
这种情况可以扩展为相同的变量(var3)通过更长的方法链。我认为这可能是一种不好的做法,因为在我的示例中 method1 是某种不操纵 var3 的中间体。在性能、设计和/或可读性方面是否有更好的做法?
【问题讨论】:
-
这个 AFAIK 没有名字,因为它只是正常的做法。它不会导致任何问题,除非您可能没有大量参数,在这种情况下,是时候开始将它们捆绑到类或结构中了。
-
@PaulR 如果方法链很长,那么我们不应该将变量声明为全局变量吗?这会是一件好事吗?
-
@Shubham:全局变量通常是个坏主意——它们破坏了模块化和解耦,可能不是线程安全的,并且会阻止某些编译器优化。该规则的例外往往是系统范围的全局变量,例如调试级别,但一般尽量避免使用全局变量。
标签: algorithm performance language-agnostic readability