Зачем вам нужно жестко кодировать ширину экрана? Откуда это взялось?
В большинстве реальных приложений он исходит из некоторого системного API, который сообщает вам, какое разрешение вы используете в данный момент, или какие разрешения может отображать система.
Тогда вы просто берете это значение и передаете его туда, где оно необходимо.
Короче говоря, в этой строке: doSomethingWithValue(SCREEN_WIDTH);
вы уже делаете это. SCREEN_WIDTH
может быть глобальным в этом конкретном примере, но это не обязательно, потому что функция не обращается к ней как глобальная. Вы передаете значение функции во время выполнения, поэтому то, что она видит, не является глобальной переменной, это просто аргумент функции.
Другим важным моментом является то, что обычно нет ничего плохого в неизменных глобальных данных.
Глобальные константы обычно в порядке. Проблема возникает, когда у вас есть изменяемое глобальное состояние: объекты, к которым можно обращаться во всем приложении, и которые могут иметь различное значение в зависимости от при просмотре . Это затрудняет рассуждения и вызывает ряд проблем.
Но глобальные константы безопасны. Возьмите например пи. Это математическая константа, и нет ничего плохого в том, чтобы позволить каждой функции видеть, что число пи равно 3,1415 ..... потому что это то, что равно , и оно не изменится.
если ширина экрана является жестко заданной константой (как в вашем примере), то она также может быть глобальной, не вызывая хаоса. (хотя по понятным причинам, это, вероятно, не должно быть константой в первую очередь 9