2009-11-28 14 views
5

Ho pensato che AS3 ora ha aggiunto le abilità private. Quindi, perché dovrei ancora prefigurare variabili private con un trattino basso?AS3: le variabili private devono avere un _

private var _privVar:String; 
+0

Hai trovato una risposta corretta? –

risposta

3

Non è necessario. È qualcosa che incoraggia la leggibilità, ma non è affatto obbligatorio. Interamente una preferenza personale.

10

Faccio una regola generale in ActionScript 3 per seguire lo stile di Adobe.

Non utilizzare caratteri di sottolineatura per varibles privati ​​a meno che non si utilizzi uno getter or setter. Per esempio:

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

Questo esempio getter/setter è un po 'inutile, come si può solo fare una proprietà pubblica che fa la stessa cosa. Utilizzare solo un getter o setter quando è necessario fare qualcosa speciale quando si ottiene o imposta la proprietà. Anche in questo caso, di solito è meglio solo creare un metodo pubblico.

Anche un altro punto. Personalmente non penso che sia una buona idea abbreviare i nomi delle variabili o dei metodi. Quindi, invece di chiamare la mia variabile privVar, la chiamerei privateVariable. Ciò è particolarmente vero se si utilizza un IDE con completamento automatico/suggerimento come FlashBuilder (Flex Builder) o FlashDevelop.

Dai un'occhiata a Adobe - coding conventions and best practices per ulteriori informazioni.

+1

Se getter e setter non stanno facendo nulla di speciale, sarebbe più veloce semplicemente rendere pubblica la variabile. Non farà male a nessuno. – LiraNuna

+0

esattamente! Il mio esempio è stato molto semplice per esprimere il mio punto. È abbastanza raro che in realtà utilizzi getter o setter in AS3. La maggior parte delle volte si crea una proprietà pubblica o un metodo pubblico. –

+1

Abbastanza raro? Quasi. Suppongo che dipenda da come si codifica, ma io codifico un po 'le interfacce e getter/setter è l'unico modo per ottenere questo risultato. –

0

L'utilizzo di un carattere di sottolineatura è solo una convenzione. E cerco di evitarli perché mi mette in imbarazzo. Sono abituato a digitare obj.va e premendo ctrl-spazio in Flex Builder per ottenere obj.variableName - questo non funziona bene con _variableName

Btw, fa le versioni precedenti di ActionScript richiedono far precedere i nomi di "private" variabile con un carattere di sottolineatura ?

+0

Lo incasina perché sembra che tu non abbia l'idea. L'utilizzo di un carattere di sottolineatura è perché vuoi contrassegnare una variabile come "membro". Il che significa che è privato o protetto. Quindi non puoi semplicemente usarlo come obj.variable - questa dovrebbe essere la funzione o getter/setter, che ovviamente non inizia con il carattere di sottolineatura. –

0

Penso che non dovresti abbreviare le variabili. indurisce la leggibilità e il completamento automatico. D'altra parte nella mia pratica non è una buona cosa usare getter e setter AS incorporati con una sintassi di function set someVar (value) : void. Indurisce molto il refactoring, perché quando si entra in molti momenti semplicemente non si sa che alcune variabili sono setter o getter.

In dove lavoravo, abbiamo utilizzato la convenzione di accesso alle proprietà dei bean Java come function setSomeVar (value) : void. Naturalmente, poiché non è un uso comune nella comunità AS, tali IDE come FlashDevelop non supportano tale generazione di getters e setters.

Problemi correlati