我是一名刚刚进入企业界的 Java 程序员。最近我使用 Groovy 开发了一个应用程序和 java 。我编写的所有代码都使用了大量的静态数据。高级技术人员要求我减少静力学的使用数量。我在谷歌上搜索了同样的内容,发现许多程序员非常反对使用静态变量。
我发现静态变量使用起来更方便。而且我认为它们也很高效(如果我错了,请纠正我),因为如果我必须对类中的函数进行 10,000 次调用,我会很高兴将该方法设为静态并使用简单的 Class .methodCall()
,而不是用 10,000 个类实例来困惑内存,对吗?
此外,静态还减少了对代码其他部分的相互依赖性。他们可以充当完美的国家持有者。除此之外,我发现静态在某些语言中广泛实现,例如 Smalltalk和 Scala 。那么,为什么程序员中(尤其是 Java 领域)普遍反对静态呢?
PS:如果我对静力学的假设有误,请纠正我。
最佳答案
静态变量代表全局状态。这很难推理,也很难测试:如果我创建一个对象的新实例,我可以在测试中推理出它的新状态。如果我使用使用静态变量的代码,它可能处于任何状态 - 并且任何东西都可能修改它。
我可以继续说很长一段时间,但要考虑的更大概念是,某件事的范围越紧密,就越容易推理。我们善于思考小事情,但如果没有模块化,就很难推理百万行系统的状态。顺便说一句,这适用于各种事物 - 不仅仅是静态变量。
关于java - 为什么静态变量被认为是邪恶的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57009525/