基本上,我有一个布尔值,在大型 API 项目中,我的所有类中有 20% 都在使用它。从实用方法到更大的类,一切都使用它。我可以在程序启动时设置状态(不会改变),但不知道访问它的“最佳”方式。
最初,我选择了依赖注入。很快,方法参数数量随着几乎所有东西的需要而增加。在某些类的几乎每个参数中看到单个布尔值是一种痛苦。我决定尝试一种静态方法。我想出了以下类结构:
public final class MyClass {
private static boolean neededBoolean;
public MyClass(boolean bool) {
MyClass.setBoolean(bool);
}
private static void setGems(boolean bool) {
MyClass.neededBoolean = bool;
}
public static boolean getNeededBoolean() {
return neededBoolean;
}
}
不过这感觉很奇怪,大多数静态方法通常不读取内部变量,并且任何程序都可以轻松(有意或无意地)更改所有内容的变量。我知道我也可以使用单例,但有人告诉我这些最适合记录器和其他用途,而不是读取静态变量。我也不想公开布尔值,以便任何其他类可以编辑它。
那么这里最好的选择是什么?过度使用依赖注入、单例或我当前的系统