我正在编写一个相当复杂的翻译模块,它本质上是在一种逻辑表示形式和 Java 代码之间进行翻译。它跨越了几个相互分离的类。
我的问题是我需要跟踪一组相当广泛的关键字,这些关键字需要插入到变量名中。这些关键字必须可供模块中的所有类访问,并且易于更改。
我知道就设计而言,使用全局变量是一个危险信号,但是在这种情况下,创建一个除了提供对所述关键字的静态访问之外什么都不做的类是否可以接受?例如:
public final class KeyWords {
public static final String SELF = "self";
public static final String RESULT = "callResult";
// etc
}
我自己的想法是它的工作方式有点像一个简单的配置类。我发现这比使用调解器或在方法调用之间传递一些其他存储桶类更合理,因为数据定义得相当好,重要的是,在运行时不受修改。
或者,将所有这些关键字放入接口中,让我的所有类都继承它会更好吗?虽然它可以工作,但感觉不对劲。