По сути, у меня есть логическое значение, которое используется примерно 20% всех моих классов в большом проекте API. Все, от служебных методов до больших классов, использует это. Я могу установить состояние (которое не изменится) при запуске программы, но я не знаю «лучший» способ доступа к нему.
Изначально я пошел на внедрение зависимостей. Быстро, число параметров метода выросло, так как почти все это нужно. Было больно наблюдать за одним логическим значением почти по всем параметрам в определенных классах. Я решил попробовать метод stati c. Я придумал следующую структуру классов:
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;
}
}
Это казалось странным, но большинство методов stati c обычно не читают внутренние переменные, и любая программа могла легко (целенаправленно или нет) изменить переменную для всего. Я понял, что мог бы также использовать синглтон, но мне сказали, что они лучше всего подходят для логгеров и других целей, а не для чтения переменных * stati c. Я также не хочу делать логическое значение publi c, чтобы любые другие классы могли его редактировать.
Так какой же лучший выбор здесь? Злоупотребление внедрением зависимостей, синглтоном или моей текущей системой