Почему в программе Java не рекомендуется использование глобальных переменных? - PullRequest
1 голос
/ 07 августа 2020

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

Но опять же, я новичок в программировании, и я был бы очень признателен, если бы кто-нибудь мог мне объяснить почему это не рекомендуется делать.

Редактировать : Мои извинения! Я не знал, что глобальные переменные и переменные класса publi c совершенно разные, и, по-видимому, я неправильно идентифицировал поля publi c как глобальные переменные. Вы никогда не знаете, насколько глупой ошибкой может стать начинающий программист Lol. Спасибо всем за то, что обратили на это мое внимание.

Ответы [ 2 ]

1 голос
/ 07 августа 2020

Чтобы по-настоящему понять объектно-ориентированное программирование, потребуется время. Большая проблема с глобальными переменными - это та же проблема, что и с геттерами и сеттерами, при создании чего-либо publi c или расширении суперкласса. Вы берете на себя обязательство использовать каждый фрагмент кода, который затрагивает глобальную переменную, сеттер или получатель, который / вы не измените реализацию /, которую вы раскрыли. Прямо сейчас все в порядке. Что произойдет через два года, когда 100 000 строк будут зависеть от этой переменной, и теперь вы понимаете, что ваша деталь реализации «int x, y» действительно должна быть «int x, y, z»? Хотите потратить выходные на отслеживание и исправление тысяч ссылок на этот код? А теперь представьте, что эта проблема умножается на все экземпляры состояния, которые вы напрасно открывали пользователям вашего кода ...

1 голос
/ 07 августа 2020

Проблема в том, что эта практика не масштабируется. По мере того, как проекты становятся более сложными или вовлекают больше сотрудников, глобальные объекты вызывают путаницу и ошибки, поскольку становится все труднее отслеживать возможные побочные эффекты. «Левая рука не знает, что делает правая». Или, по крайней мере, не без значительных испытаний и исследований - увеличения стоимости обслуживания.

Вы можете просмотреть книгу о передовых методах, например «Чистый код» Роберта C. Мартин, классный c.

Аналогичная ситуация возникает в сфере безопасности, где у нас есть концепция предоставления наименьших привилегий .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...