是否有正确的时间使用公共变量?

时间:2014-01-10 20:08:06

标签: java global-variables public

有没有使用公共变量的情况会有益吗?如果没有,为什么他们甚至存在?

此外,我特别谈论Java,但如果他们使用其他语言或许可以说明他们的存在。

3 个答案:

答案 0 :(得分:3)

是的,我用它们代表矢量。

public class Vec3f {

    public final float x, y, z;

    // the methods

}

请注意,因为这些是最终基元,所以公开它们是安全的。这在代码中较短,并且使用较少的方法调用(无)。

一般来说,如果最终成功,它们可以用于值对象(让我们使用该名称)。 我将值对象定义为可能不可变的,可能是短暂的对象,只保存数据,在变异时产生新的对象。

您不应在公共API中使用公共非最终变量,但是......

答案 1 :(得分:0)

公共 静态最终 变量是定义常量的常用方法

公共成员变量有点难以证明,但是我看到了大量的bean类型对象,其中包含一些私有成员变量和一组相应的getter和setter,它们只返回或设置私有变量。在这些情况下,有一个论点要将这些变量公开,因为数据很难被类“封装” - 用户可以将它设置为他们喜欢的任何东西,并且他们可以检索变量设置的任何内容而无需任何修改。

我个人并不这样做,但我也不是100%反对它。

答案 2 :(得分:0)

全局变量(当语言允许时)可能会导致重大问题,尤其是在复杂系统中,其中一段代码可以随时更改其值。除了在不应该有的地方之间创建耦合。

所以避免

在java中,我通常在单个集中源中使用公共最终常量。