java中的Variables.class
所以我知道如何引用不同类中的变量,但我想知道是否值得创建一个Vars.class来容纳所有全局变量 这将使我更容易,如果我需要改变他们在以后的日期然而,我想知道这是否是一个坏主意速度明智?从不同的类引用var是否需要更长的时间 谢谢 编辑:当我说“全局变量”时,我指的是“全局常量”。为这一混乱道歉。我希望他们是从其他类参考,但他们不会被改变的飞行 javajava中的Variables.class,java,class,variables,Java,Class,Variables,所以我知道如何引用不同类中的变量,但我想知道是否值得创建一个Vars.class来容纳所有全局变量 这将使我更容易,如果我需要改变他们在以后的日期然而,我想知道这是否是一个坏主意速度明智?从不同的类引用var是否需要更长的时间 谢谢 编辑:当我说“全局变量”时,我指的是“全局常量”。为这一混乱道歉。我希望他们是从其他类参考,但他们不会被改变的飞行 java package test; public class Vars { static int variable1 = 16;
package test;
public class Vars
{
static int variable1 = 16;
static int variable2 = 32;
}
Start.java
package test;
public class Start
{
public Start()
{
int i = Vars.variable1;
}
}
所以我知道如何引用不同类中的变量,但我想知道是否值得创建一个Vars.class来容纳所有全局变量
不,首先应该避免使用全局变量。变量应该表示一个特定对象的状态——因此根据有用对象的合理边界对变量进行分组,然后确保每个对象都知道它需要依赖的任何其他对象
如果你打算放弃面向对象,那么使用面向对象的语言没有什么意义
花时间在应用程序中计算出合适的类型无疑会比只使用全局变量在很短的时间内慢。。。但这将使您的代码更易于维护和测试
至于表现:你担心得太早了。变量的访问时间几乎永远不会对性能产生重大影响。以最简单的方式设计代码。确定性能指标和验收标准。查看您的代码是否已经满足这些条件。如果没有,请找出原因,并执行尽可能干净的更改以提高性能(始终进行测量)
此外,变量本身几乎总是私有的:存储是一个实现决策;考虑如何以及是否通过方法公开状态。< /P> < P >答案是否定的。如果您考虑过安全性,那么就没有功能缺陷 全局变量是个坏主意 这将使我更容易,如果我需要在以后更改它们 然而日期 也许你需要常数?如果您认为需要更改它们,那么将所有常量放在一个位置是有意义的。对常量使用公共静态final:
package test;
public class Constants
{
public static final double EPSILON = 0.001d;
}
package test;
public class Start
{
public Start()
{
...
if(arg1 - arg2 < Constants.EPSILON)
...
}
}
封装测试;
公共类常量
{
公共静态最终双ε=0.001d;
}
包装试验;
公开课开始
{
公共启动()
{
...
if(arg1-arg2
我更喜欢将常量放在使用它们的类附近。不捕捉所有物体;没有接口
如果很多对象都需要对象或值,我会考虑用DI工厂注入它们
如果值发生变化,我会考虑将它们放入数据库并作为配置访问它们
除了你提出的任何建议。全局变量是个坏主意。网上有很多关于他们的文章。这是个好主意 如果要处理全局常量 乙二醇
然后我仍然会把常数放在它相关的类中。我个人不会设置变量类。尽量将代码封装起来,使变量尽可能接近实际使用。全局变量是个坏主意!您不应该需要全局变量。不是因为性能原因,而是因为你的源代码会变成一团难以理解的意大利面。你在start类中的代码不会编译……而怀疑它是否会造成性能损失是过早优化的概念基础@TheBlastOne:谢谢,我错过了性能方面。我会加进去的。我已经编辑了我的帖子,因为我没有正确解释。编辑后您的回复是否仍然有效?+1。上下文友好型静态常量的正面示例:
Math.PI
public static final Integer MY_CONSTANT = 1;