Newsgroup: it.comp.java
Titolo: Quale soluzione per le costanti?

Ciao, siccome ho avuto una discussione con una persona vorrei sentire il 
vostro parere riguardo all'uso delle costanti. Io per questo scopo ho 
sempre creato un'interfaccia del tipo
interface Constanti {
	final int COSTANTE1	= 0;
	final int COSTANTE2	= 1;
	// ecc...
}
poi ogni facevo implementare l'interfaccia alle classi che ne avevano 
bisogno. Mi sembrava un'implementazione corretta eppure mi è stata 
criticata...
Voi cosa mi suggerite? C'è qualche modo più 'elegante' di fare cio? 
(questo metodo l'ho imparato su un libro di testo)
Grazie!
ciao

 ciao
Di niente e ciao.
--
Ciao,
 Renato
--------------------------------------------------------
Renato Eschini
  Synapsis S.r.l.
     in Computer Science
  P.zza Dante, 19/20
  57121 Livorno Italy
  tel: 
+39 0586 426790
  fax: 
+39 0586 443954
  web: 
www.websynapsis.com
--------------------------------------------------------
Art. 11: L'italia ripudia la guerra come strumento di offesa
alla libertà degli altri popoli e come mezzo di risoluzione
delle controversie internazionali.
--------------------------------------------------------

 Di niente e ciao.
Grazie a te! 
Ciao
--
Jelly


Non ci avevo mai pensato, mi piace.
In quanto ad eleganza e a correttezza nulla da dire, e' on'ottima soluzione,
molto piu'
"Oggettosa" della vecchia Constants.java (quella che uso io).
Io mi converto

 Io mi converto
eheh vabbeh...occhio però se devi rendere conto del tuo codice a gente 
rompic...ehm...rigorosa ;-)
ciao

 ciao
Sarebbe molto interessante sapere cosa ha da dire su una soluzione del 
genere la gente rompic ;) .. Anche perchč io sono anni che faccio cosě 
avendo brutalmente scopiazzato da qualsiasi fonte...
Ciao
Giuseppe

 ciao
Beh, io mi reputo molto rigoroso [ci provo :-)],
diciamo che dove lavoro potrei essere considerato uno dei rompipalle.
A parte gli scherzi, per adottare un 'modo di fare le cose' ci deve essere
un motivo,
nel tuo caso il motivo si vede, magari il tuo boss non lo vede.
Nel mio caso ti posso assicurare che su una persona mi porta una cosa del
genere, e
se la cosa ha motivo d'essere, io la adotto ben volentieri
Ciao

"Jelly" <je...@SPAMME.com> ha scritto nel messaggio
news:Xns935DB107...@195.31.190.132...

A me sembra corretta, l'unico appunto da fare e` che il final si puo`
omettere, visto che le variabili definite in un'interfaccia sono
implicitamente static e final.
Per curiosità, quali sono le critiche che ti sono state fatte?
Ciao,
Cecco

 ciao
Tra l'altro scopro oggi che č una soluzione usata pure "ufficialmente", per 
esempio si veda javax.swing.SwingConstants (interfaccia).
-- 
Ciao. Fabrizio. ( icq: 241182067 )
< MISTAH KURTZ -- HE DEAD.
                A penny for the Old Guy> 
(T.S. Elliot: the hollow men)

 implicitamente static e final.
Beh, se sono static per default perde tutto il suo fascino, spero che non lo
siano

 siano
Tutte le operazioni in un'interfaccia sono implicitamente pubblic ed 
abstract; Tutti gli attributi in un interfaccia sono public, final e 
static :)
Sorry, spero non ti ho fatto perdere il fascino delle interfaccie ;)
Ciao
Giuseppe


Non hai fatto perdere nessun facino alle interfacce, ma alla soluzione
proposta
dal creatore del thread, infatti se sono final static per default, e' la
stessissima cosa
che fare una classe di costanti, non cambia niente, mentre se gli attributi
fossero stati
non final allora avresti avuto un modello ad oggetti piu' significativo,
perche' la classe
che voleva usare le costanti sarebbe stata costretta ad implementarla.
statti bene
cattivik :-)

 che voleva usare le costanti sarebbe stata costretta ad implementarla.
Ma se erano costanti, perchè non final, e che necessità c'è 
d'implementarle ;)???
Ciao
Giuseppe


Nessuna necessita', pero' se per caso non fossero state final chi le voleva
usare doveva implementare
l'interfaccia e quindi usarle, nel caso in cui siano final, e lo sono, non
serve implementare l'interfaccia.
La cosa esaltante a mio avviso sarebbe stata proprio quella di essere
costretti ad implementarla l'interfaccia
per usarle. Pero' per come stanno le cose non e' possibile, ed ecco perche'
ti dico che la soluzione, che all'inizio
mi aveva esaltato, ha perso il suo fascino.
Non so' se mi sono spiegato...
ciao

 ciao
Si ti sei spiegato, ma quello che volevo far notare č che probabilmente 
le Costanti di un applicazione sono usate da tutta l'applicazione, e 
quindi ti troveresti con una marea di classi che implementano tutte la 
medesima interfaccia. Ed anche la terminologia "implements" non č esatta 
proprio per il linguaggio, perchč le costanti non s'implementano :P 
Forse era meglio un "uses" ma stiamo in FantaJava qui :)
Ciao!
Giuseppe
PS Io concordo con la soluzione ad interfaccia delle costanti, ma 
preferisco qualcosa con una Classe ed un file di properties, mi sembra 
piů.. configurabile ;)