Избегайте общедоступных переменных, за исключением классов, которые по сути являются структурами в стиле C. Это просто не лучшая практика.
После того, как вы определили интерфейс класса, вы, возможно, никогда не сможете его изменить (кроме добавления к нему), потому что люди будут строить на нем и полагаться на него. Сделать переменную общедоступной означает, что вам нужна эта переменная, и вы должны убедиться, что в ней есть то, что нужно пользователю.
Теперь, если вы используете геттер, вы обещаете предоставить некоторую информацию, которая в настоящее время хранится в этой переменной. Если ситуация изменится, и вы не хотите постоянно поддерживать эту переменную, вы можете изменить доступ. Если требования меняются (а я видел некоторые довольно странные изменения требований), и вам в основном нужно имя, которое находится в этой переменной, но иногда имя в этой переменной, вы можете просто изменить геттер. Если бы вы сделали переменную общедоступной, вы бы застряли на ней.
Это не всегда будет происходить, но мне гораздо проще написать быстрый метод получения, чем анализировать ситуацию, чтобы увидеть, не пожалею ли я о том, что переменная стала общедоступной (и рискну ошибиться позже).
Сделать переменные-члены приватными - это хорошая привычка. Любой магазин, в котором есть стандарты кода, вероятно, запретит делать случайные переменные-члены общедоступными, и любой магазин с обзорами кода, вероятно, будет критиковать вас за это.
Когда это действительно не имеет значения для простоты письма, возьмите более безопасную привычку.
person
David Thornley
schedule
17.04.2009
m_
вместо_
. - person Wes Miller   schedule 30.04.2013m_
в Javascript и Java. Люди, кажется, забывают, что это наименее неэлегантные решения неудобств C ++ (например, в Java поля и методы могут иметь одно и то же имя) - person Andy   schedule 09.06.2015