【发布时间】:2017-12-30 16:37:08
【问题描述】:
使用局部变量还是全局变量更好?
假设谈论 2000 多行 android(java) 服务类,所有服务都在处理“请求”对象和类似的共享对象。
如果我将所有内容都设为本地(保留在函数内部),则每次都需要传递许多变量,或者多次覆盖同一个函数。我需要确保对象和子对象也不为空。
如果我将一些变量设为全局变量(跨类),我可以共享它们,跨函数使用它们。我认为这会让一切变得更容易。
在函数内部定义变量或全局定义有哪些优点和缺点。在实践中和理论上(可读性等)。
有推荐的方法吗?
谢谢。
【问题讨论】:
-
这很简单。全局变量几乎总是一个错误,会以意想不到的方式咬你。此外,将 值 传递给函数是 Java 所做的。
-
“如果我将一些变量设为全局变量(跨类)”——类中的普通字段并不是大多数程序员使用该术语的“全局”字段。如果您提供minimal reproducible example 来准确地演示“使某些变量成为全局变量”的含义,您可能会有更好的运气。
-
根据这种思路,领域是邪恶的,应该避免吗?
-
@efekctive 具体来说,可变字段是邪恶的。如果不必要地使用,可变性增加的复杂性比它节省的复杂性要多。
-
@MmtBkn 如果你有一个带有这么多参数的函数,你需要重构这个函数,也许还需要定义一些新的对象。删除参数只会让事情变得更糟。
标签: java android software-design