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



是否有使用公共变量会有益的情况? 如果不是,为什么它们甚至存在?

我也特别谈论Java,但如果它们在另一种语言中使用,也许会为它们的存在提供理由。

是的,我用它们来表示向量。

public class Vec3f {
    public final float x, y, z;
    // the methods
}

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

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

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

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

公共成员变量

有点难以证明,但是我已经看到了大量的bean类型对象,其中包含大量私有成员变量和相应的getter和setter,它们除了返回或设置私有变量之外什么都不做。在这些情况下,有一个参数可以使这些变量公开,因为数据几乎不会被类"封装"——用户可以将其设置为他们喜欢的任何内容,并且他们检索变量设置为的任何内容而无需任何修改。

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

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

所以避免

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

相关内容

  • 没有找到相关文章