小编典典

为什么静态变量被认为是邪恶的?

all

我是一名 Java
程序员,刚接触企业界。最近我使用Groovy
Java
开发了一个应用程序。在我编写的所有代码中,都使用了相当多的静态参数。高级技术人员要求我减少使用的静力学数量。我用谷歌搜索过,我发现很多程序员都反对使用静态变量。

我发现静态变量使用起来更方便。而且我认为它们也很有效(如果我错了,请纠正我),因为如果我必须对一个类中的一个函数进行 10,000
次调用,我会很高兴将方法设为静态并使用简单的方法Class.methodCall()而不是用 10,000 个类的实例弄乱内存,对吗?

此外,静态减少了对代码其他部分的相互依赖。他们可以充当完美的国家持有者。除此之外,我发现静态在SmalltalkScala等一些语言中得到了广泛的实现。那么为什么这种对静态的反对在程序员(尤其是在
Java 世界)中盛行呢?

PS:如果我对静态的假设是错误的,请纠正我。


阅读 110

收藏
2022-03-03

共1个答案

小编典典

静态变量代表全局状态。这很难推理也很难测试:如果我创建一个对象的新实例,我可以在测试中推理它的新状态。如果我使用使用静态变量的代码,它可以处于任何状态 -
并且任何东西都可以修改它。

我可以继续讲很长一段时间,但要考虑的更大概念是,事物的范围越窄,推理就越容易。我们善于思考小事,但如果没有模块化,就很难推断百万行系统的状态。顺便说一句,这适用于各种各样的事情——不仅仅是静态变量。

2022-03-03