gpt4 book ai didi

java - 这是对全局变量的可接受使用吗?

转载 作者:行者123 更新时间:2023-11-30 07:19:14 25 4
gpt4 key购买 nike

我正在编写一个相当复杂的翻译模块,它本质上是在一种逻辑表示形式和 Java 代码之间进行翻译。它跨越几个相互解耦的类。

我的问题是我需要跟踪一组相当广泛的关键字,这些关键字需要被插入,例如,变量名。这些关键字必须可供模块中的所有类访问,并且易于更改。

我知道就设计而言,使用全局变量是一个危险信号,但在这种情况下创建一个只提供对所述关键字的静态访问的类是否可以接受?例如:

public final class KeyWords {
public static final String SELF = "self";
public static final String RESULT = "callResult";
// etc
}

我自己的想法是,它的工作方式有点像一个简单的配置类。我发现这比使用调解器或在方法调用之间传递一些其他桶类等更合理,因为数据定义得相当好,而且重要的是,在运行时不受修改。

或者,将所有这些关键字放入一个接口(interface)中,让我所有的类都继承它会更好吗?虽然它可以工作,但感觉不对。

最佳答案

这不是有史以来最糟糕的事情,但它有点过时了。如果您使用的是 Java 1.5 或更高版本,enum 会更好;例如,它为您提供类型安全。

public enum KeyWord {
SELF("self"),
RESULT("callResult")
;

public String getKeyword() {
return keyword;
}

private KeyWord(String keyword) {
this.keyword = keyword;
}

private final String keyword;
}

您是对的,“将它们塞进界面”的方法感觉不对;接口(interface)是关于指定行为,这是带有静态终结的无方法接口(interface)不提供的。从 Java 1.5 开始,您可以使用 static imports在没有“代码污染”的情况下获得同样的好处。

关于java - 这是对全局变量的可接受使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14765387/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com