Interfaccia per le migliori pratiche di Java: sottoclassi e costanti

0

Nel caso in cui un paio di classi implementino un'interfaccia e quelle classi abbiano un paio di costanti in comune (ma nessuna funzione), dovrei inserire questa costante?

Ho avuto questo problema un paio di volte.

Ho questa interfaccia: DataFromSensors che uso per nascondere le implementazioni di diverse sottoclassi come DataFromHeartRateMonitor DataFromGps ecc ...

Per qualche ragione, quelle classi usano le stesse costanti. E ora c'è altro nel codice in cui è stato usato.

La mia domanda è: dovrei inserire quelle costanti?

Non nell'interfaccia, perché non ha nulla a che fare con la mia API

Non in una classe di costanti statiche, perché sto cercando di evitare quelle

Non in una comune classe astratta, che starebbe tra l'interfaccia e le sottoclassi, perché non ho funzioni in comune, solo un paio di costanti (TIMEOUT_DURATION, UUID, quel tipo di cose)

Ho letto best practice per le costanti e interfaccia per definire le costanti ma non lo fanno t davvero rispondere alla mia domanda.

Grazie!

    
posta Taiko 09.06.2014 - 08:00
fonte

2 risposte

1

L'altra cosa che puoi fare è specificarla in una risorsa di configurazione che includi con un jar. Le costanti sono piuttosto divertenti: pensi che non debbano mai cambiare prima di farlo e quindi devi ricompilare il codice per cambiare il tuo valore di TIMEOUT_VALUE.

Se lo metti nel barattolo con il resto delle risorse, allora è, a tutti gli effetti, costante. Tuttavia, non è un codice e, nel caso in cui tu abbia un problema, puoi modificarlo nel campo.

Solo un'idea. Mettere le statistiche nell'interfaccia è solo un problema se è l'unica cosa che fa l'interfaccia. Qualcosa nella programmazione è solo brutto e devi fare alcuni compromessi.

    
risposta data 09.06.2014 - 08:22
fonte
0

Perché non in una classe Constant statica? Ho visto framework popolari come SWT mettere molte costanti in una classe costante se l'uso è diffuso. E anche nel caso in cui l'uso non è molto diffuso, come è una cattiva idea. Una costante non è tanto un dettaglio di implementazione.

Per favore correggimi se sbaglio.

    
risposta data 09.06.2014 - 10:26
fonte

Leggi altre domande sui tag