Лучшая практика для доступа к аргументам командной строки глобально в Java - PullRequest
2 голосов
/ 31 августа 2011

Каков наилучший способ хранения глобальных настроек, передаваемых программе Java из командной строки? например, если бы вы запустили >Java myProgram -verbose, я бы хотел знать, было ли подробное задано во всех частных функциях. Неправильно добавлять пять или десять параметров в каждую функцию, просто чтобы передать необходимые переменные, но я также читал, что глобальные переменные в Java - дело дьявола, даже если они установлены только один раз. Это, должно быть, очень распространенная проблема, но я не смог найти ничего, что объясняло бы лучший способ справиться с этим, и я был бы признателен, если бы кто-то указал мне правильное направление.

Ответы [ 2 ]

5 голосов
/ 31 августа 2011

Глобальные переменные никогда не являются работой дьявола на любом языке. Вместо этого они больше похожи на кубик Рубикса.

Если вы знаете, как лучше всего их использовать, вы редко столкнетесь с проблемой, которую не можете решить. Если вы знаете основные способы их использования, вы справитесь с этим, но потребуется некоторое время, чтобы все выстроилось правильно. Если вы не знаете, как их использовать, они просто создадут красивую коллекцию цветных квадратов ...

Следует иметь в виду, что в большинстве случаев вам нужно использовать глобальную переменную, вместо этого вы можете использовать ее с внедрением зависимости. Она будет содержать меньше ошибок и, вероятно, даст те же результаты. Код также будет чище, что всегда хорошо.

Вместо добавления 10 переменных в ваши методы, почему бы не добавить эти переменные в ваш класс? Почему бы не хранить их в собственном контейнере, чтобы они логически группировались?

Для получения дополнительной информации и реализации мне потребуется больше информации.

0 голосов
/ 31 августа 2011

Использовать шаблон объекта контекста .

...