2009-11-28 3 views

ответ

3

Вам не обязательно. Это то, что поощряет читаемость, но отнюдь не обязательно. Всецело личное предпочтение.

10

Я делаю это общим правилом в ActionScript 3, чтобы следовать стилю Adobe.

Не используйте символы подчеркивания для личных изменений, если вы не используете getter or setter. Например:

private var _foo:String; 
public function get foo():String 
{ 
    return _foo; 
} 
public function set foo(value:String):void 
{ 
    _foo = value; 
} 

Этот пример геттер/сеттер немного бесполезно, так как вы могли бы просто сделать публичное свойство, которое делает то же самое. Используйте только геттер или сеттер, когда вам нужно что-то сделать специальный, когда вы приобретете или установите объект. Даже тогда обычно лучше всего создать публичный метод.

Также еще один пункт. Лично я не думаю, что это хорошая идея для сокращения имен переменных или методов. Поэтому вместо вызова моей переменной privVar, я бы назвал это privateVariable. Это особенно верно, если вы используете IDE с автозаполнением/предложением, таким как FlashBuilder (Flex Builder) или FlashDevelop.

Посмотрите на Adobe - coding conventions and best practices для получения дополнительной информации.

+1

Если геттер и сеттер не делают ничего особенного, было бы быстрее просто сделать переменную открытой. Это никому не повредит. – LiraNuna

+0

точно! Мой пример был просто очень простым, чтобы выразить свою точку зрения. Довольно редко вы использовали бы геттеры или сеттеры в AS3. Большую часть времени вы делаете публичную собственность или публичный метод. –

+1

Довольно редко? Едва. Я думаю, это зависит от того, как вы кодируете, но я немного кодирую против интерфейсов, а getter/setter - единственный способ добиться этого. –

0

Использование подчеркивания - это просто конвенция. И я стараюсь избегать их, потому что это путается с моим intellisense. Я привык печатать obj.va и нажав Ctrl-Space в Flex Builder, чтобы получить obj.variableName - это не очень хорошо работает с _variableName

BTV, делает более ранние версии ActionScript требуют предварить «частные» имена переменных с подчеркивания ?

+0

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

0

Я думаю, что вы не должны сокращать переменные. это упрощает читаемость и автоматическое завершение. С другой стороны, в моей практике нехорошо использовать встроенные AS-приемники и сеттеры с синтаксисом function set someVar (value) : void. Это сильно затормозит рефакторинг, потому что когда вы получаете много времени, просто не зная, что какая-то переменная является сеттером или геттером.

В том месте, где я работал, мы использовали соглашение о доступе к свойствам Java Beans, как function setSomeVar (value) : void. Конечно, поскольку это сообщество не является обычным явлением в сообществе AS, такие IDE, как FlashDevelop, не поддерживают такое генерирование геттеров и сеттеров.

Смежные вопросы