什么样的全局变量在java中是不好的做法?

Wil*_*ill 5 java global

对于我的许多java项目,我广泛使用数据库,我通常做的是拥有一个property.xml文件来保存我的所有字符串和设置.

然后我会有一个类CNST来保存与xml文件中的静态常量相对应的所有静态常量.

这些常量在程序启动时由xml文件初始化一次,并在程序中的任何地方用作全局变量.

然而,在阅读了这些日子的许多文章之后,似乎使用全局变量并不是一个好习惯.所以,任何人都可以指出这种情况的良好做法吗?谢谢.

dev*_*ull 3

一般来说,在可能的情况下应避免使用全局变量 => 然而,如果它们是常量,则这不是问题。对于像这样的情况,当您(大概)在一开始初始化此全局设置包装对象并且之后没有任何更改时,有以下选项:

  • 具有在块 public static final中初始化的常量 ( )static
  • private static final在块中初始化变量static并通过 getters 公开
  • private final创建一个单例并通过 getter 公开变量

第二点和第三点比第一点有优势,在 getter 方法中,您封装了变量的值,并且可以更改/插入代码来操作要返回到调用方法的值,而不会影响依赖于它的(调用)代码。