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;
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;
Non è necessario. È qualcosa che incoraggia la leggibilità, ma non è affatto obbligatorio. Interamente una preferenza personale.
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.
Se getter e setter non stanno facendo nulla di speciale, sarebbe più veloce semplicemente rendere pubblica la variabile. Non farà male a nessuno. – LiraNuna
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. –
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. –
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 ?
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. –
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.
Hai trovato una risposta corretta? –