2009-11-28 9 views
5

, pensé que AS3 ahora tiene capacidades privadas agregadas. Entonces, ¿por qué debería prefabricar las variables privadas con un guión bajo?AS3: si las variables privadas tienen un _

private var _privVar:String; 
+0

¿Encontró una respuesta correcta? –

Respuesta

3

No es necesario. Es algo que fomenta la legibilidad, pero de ninguna manera es obligatorio. Enteramente una preferencia personal.

10

Creo que es una regla general en ActionScript 3 seguir el estilo de Adobe.

No utilice guiones bajos para varibles privados a menos que use un getter or setter. Por ejemplo:

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

Este ejemplo de captador/definidor es un poco inútil, ya que sólo podría hacer una propiedad pública que hace lo mismo. Solo use un captador o colocador cuando necesite hacer algo especial cuando obtenga o establezca la propiedad. Incluso entonces, generalmente es mejor simplemente crear un método público.

También otro punto. Personalmente, no creo que sea una buena idea abreviar los nombres de sus variables o métodos. Entonces, en lugar de llamar a mi variable privVar, la llamaría privateVariable. Esto es especialmente cierto si está utilizando un IDE con autocompletar/sugerir, como FlashBuilder (Flex Builder) o FlashDevelop.

Eche un vistazo a Adobe - coding conventions and best practices para obtener más información.

+1

Si getter y setter no están haciendo nada especial, sería más rápido hacer que la variable sea pública. No va a lastimar a nadie. – LiraNuna

+0

exactamente! Mi ejemplo fue muy simple para expresar mi punto. Es bastante raro que realmente use getters o setters en AS3. La mayoría de las veces haces una propiedad pública o un método público. –

+1

¿Muy raro? Apenas. Supongo que depende de cómo codifiques, pero codigo bastante contra las interfaces y getter/setter es la única forma de lograrlo. –

0

Usar un guión bajo es solo una convención. Y trato de evitarlos porque se mete con mi intellisense. Estoy acostumbrado a escribir obj.va y pulsando Ctrl-espacio en Flex Builder para obtener obj.variableName - esto no funciona bien con _variableName

Por cierto, hace versiones anteriores de ActionScript requieren que los nombres de variables Prefacio "privadas" con un guión ?

+0

Lo ensucia, porque parece que no entiendes la idea. El uso de un guión bajo se debe a que desea marcar una variable como una 'miembro'. Lo que significa que es privado o protegido. Entonces no puedes simplemente usarlo como obj.variable - esto debería ser función o getter/setter, que por supuesto no comienza con guión bajo. –

0

Creo que no debe abreviar las variables. se endurece la legibilidad y la autocompletación. Por otro lado, en mi práctica no es bueno utilizar get y setters AS integrados con una sintaxis de function set someVar (value) : void. Se endurece mucho la refactorización, porque cuando llegas mucho tiempo simplemente no sabes que alguna variable es setter o getter.

En donde solía trabajar utilizamos la convención de acceso a la propiedad de Java Beans como function setSomeVar (value) : void. Por supuesto, debido a que no es un uso común en la comunidad AS, tales IDE's como FlashDevelop no son compatibles con la generación de getters y setters.

Cuestiones relacionadas