Если вы используете геттеры и сеттеры, как следует называть частные переменные-члены?
Вопрос
В качестве продолжения этот вопрос о префиксах, Я согласен с большинством участников ветки, что префиксы — это плохо.Но что, если вы используете геттеры и сеттеры?Затем вам нужно отличить общедоступное имя метода получения от частной переменной.Обычно я просто использую подчеркивание, но есть ли лучший способ?
Решение
Это совершенно субъективный вопрос. Нет «лучше» путь.
Один из способов:
private int _x;
public get x():int { return _x; }
public set x(int val):void { _x = val; }
Еще один:
private int x;
public get X():int { return x; }
public set X(int val):void { x = val; }
Ни один из них не является правильным ответом. У каждого есть свои достоинства и недостатки. Выберите тот, который вам больше нравится, и применяйте его последовательно.
Другие советы
Мне нравится добавлять префиксы в поля с подчеркиванием, как уже упоминали другие. Р>
private int _x;
Я думаю, что это выходит за рамки прямых личных предпочтений (как сказал Дэвид Арно в этой теме). Я думаю, что есть некоторые реальные объективные причины для этого:
<Ол>(Эти соглашения для Java, но аналогичные существуют для других языков)
Эти вещи кажутся маленькими, но их распространенность определенно облегчает мою жизнь, когда я пишу код.
В java есть this.foo, в python есть self.foo, и в других языках есть похожие вещи, поэтому я не вижу необходимости называть что-то специальным образом, когда я уже могу использовать языковую конструкцию. В этом же контексте хорошие IDE и редакторы понимают переменные-члены и выделяют их особенным образом, так что вы действительно можете увидеть их без специальных имен.
В чувствительном к регистру языке я просто использую:
private int myValue;
public int MyValue
{
get { return myValue; }
}
В противном случае я бы использовал подчеркивание
Private _myValue As Integer
Public ReadOnly Property MyValue As Integer
Get
Return _myValue
End Get
End Property
Существует почти столько же разных способов сделать это, сколько программистов, но некоторые из наиболее популярных способов включают в себя (для свойства Foo
):
- мфу
- м_фу
- _foo
- фу
Мне нравится писать "this.x = x". Это очень ясно для меня. Кроме того, при использовании Eclipse вы можете автоматически генерировать ваши методы получения / установки.