Когда я проходил свой первый курс по программированию в университете, нас учили, что глобальные переменные - это зло, и их следует избегать любой ценой (поскольку вы можете быстро разработать запутанный и не поддерживаемый код).В следующем году нас учили объектно-ориентированному программированию и тому, как создавать модульный код с использованием классов.
Я обнаружил, что всякий раз, когда я работаю с ООП, я использую частные переменные моих классов в качестве глобальных переменных, т.е. , они могут (и) считываться и изменяться любой функцией в классе,Это не совсем подходит мне, так как кажется, что мы сталкиваемся с теми же проблемами, с которыми сталкивались глобальные переменные в таких языках, как C.
Поэтому я думаю, что мой вопрос в том, как мне прекратить писать классы с «глобальными» переменными?Будет ли больше смысла притворяться, что я пишу на функциональном языке?Под этим я подразумеваю, чтобы все функции принимали параметры и возвращали значения вместо непосредственного изменения переменных класса.Если мне нужно установить какие-либо поля, я могу просто взять выходные данные функции и назначить ее вместо того, чтобы функция делала это напрямую.Кажется, что это может сделать более поддерживаемый код, по крайней мере, для больших классов.Что такое обычная практика?