Аргументов в конструкторах соответствующие поля


Каково Ваше мнение в качестве аргументов в конструкторах совпадающие члены, как в следующем примере

public Join(final int parent, final TIntHashSet children) {
  this.parent = parent;
  this.children = children;
}

Я нахожу это раздражает, так как я должен использовать это. а также некоторые проверки кода приложений генерировать предупреждения.



569
7
задан 30 января 2011 в 11:01 Источник Поделиться
Комментарии
5 ответов

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

13
ответ дан 31 января 2011 в 12:01 Источник Поделиться

Лично я использую самый естественный имена для переменных-членов.
Это потому, что это те, которые вы собираетесь использовать чаще всего (поэтому я не люблю приставку бы).

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

Я нашел большинство Java-стандарты кодирования, с которыми я столкнулся, похоже, предпочитают (в конструкторе) использование

this.member = member;

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

this.member = p_member;

Не могу получить это неправильно, так как каждый идентификатор уникален.

5
ответ дан 31 января 2011 в 02:01 Источник Поделиться

Если у вас есть доступ к копии "Чистый код" есть глава под названием "значимые имена", что я согласен. Нижняя линия, ваше имя должно быть точно указано, что она имеет в виду. Создание кодировку для имени а-ля c++ только замедляет чтение и причины плохой мысленно пропустить его в любом случае. Кроме того, ваш IDE, будь то затмение, то Emacs, и т. д. необходимо обеспечить подсветку, что делает разницу между переменными класса и параметров различных.

4
ответ дан 31 января 2011 в 02:01 Источник Поделиться

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

4
ответ дан 2 февраля 2011 в 05:02 Источник Поделиться

Если вы беспокоитесь о вводе дополнительных символов для этого вы можете рассмотреть стиль кодирования, используемые в C++. Чтобы избежать неоднозначности между классами данных и параметр передается в метод, который я обычно использую следующие соглашения об именах для членов данных: m_parent и m_children (префикс М означает член), parent_ и children_, myParent и myChildren.

2
ответ дан 30 января 2011 в 11:01 Источник Поделиться