Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Renault Twingo E-Tech Electric: che prezzo!
Renault Twingo E-Tech Electric: che prezzo!
Renault annuncia la nuova vettura compatta del segmento A, che strizza l'occhio alla tradizione del modello abbinandovi una motorizzazione completamente elettrica e caratteristiche ideali per i tragitti urbani. Renault Twingo E-Tech Electric punta su abitabilità, per una lunghezza di meno di 3,8 metri, abbinata a un prezzo di lancio senza incentivi di 20.000€
Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media
Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media
Nel Formula 1 Technology and Media Centre di Biggin Hill, la velocità delle monoposto si trasforma in dati, immagini e decisioni in tempo reale grazie all’infrastruttura Lenovo che gestisce centinaia di terabyte ogni weekend di gara e collega 820 milioni di spettatori nel mondo
DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica
DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica
Il nuovo gimbal mobile DJI evolve il concetto di tracciamento automatico con tre modalità diverse, un modulo multifunzionale con illuminazione integrata e controlli gestuali avanzati. Nel gimbal è anche presente un'asta telescopica da 215 mm con treppiede integrato, per un prodotto completo per content creator di ogni livello
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 07-07-2012, 17:24   #1
duald
Junior Member
 
Iscritto dal: Jul 2012
Messaggi: 4
[JAVA] Dubbio su come evitare GUI "hard-coded"

Salve a tutti.
Sto realizzando un programma con interfaccie grafiche, e mi chiedevo come evitare hard-coded. In particolare voglio evitare di impostare la proprieta Text dei Component direttamente dal codice.
La scelta è ricaduta sui file properties, così colgo l'occasione anche di rendere il programma i18n.
Il dubbio che mi sorge è come implementare la classe :
1 - definisco un interfaccia
public interface I_TextGUI{
public static final int MAIN = 0;
...
public String[] getEtichetette(int whichGUI);
}

che viene estesa dalla classe :
public class TextGUIProperties1 implements I_TextGUI{ }

2 - creare solo la classe
public class TextGUIProperties2 {
public static final int MAIN = 0;
...
public static String[] getEtichetette(int whichGUI){}
}

La soluzione 1 favorisce il riuso (forse ... spero) se la fonte dati dovesse cambiare; lo svantaggio è che ogni view deve avere un riferimento ad un oggetto della classe TextGUIProperties1 che opera allo stesso modo è che non ha stato.
Soluzione 2 l'esatto opposto.
Un possibile compromesso penso che sia la definizione di una classe di Utility
public class Utility{
private static I_TextGUI textGUI;

public static I_TextGUI getTextGUI(){ return textGUI;}

public static void setTextGUI(I_TextGUI textGUI){
Utility.textGUI = textGUI;
}
..//eventuali altri metodi
}
dove I_TextGUI viene impostato nel main.
Però questa soluzione mi sembra che tende ad una proliferazione delle classi.
Come vedete sono un pò confuso, spero in un vostro aiuto.
duald è offline   Rispondi citando il messaggio o parte di esso
Old 09-07-2012, 14:35   #2
duald
Junior Member
 
Iscritto dal: Jul 2012
Messaggi: 4
La mia scelta è ricaduta sull'opzione 2 (classe con metodo statico). Convinto di aver fatto la scelta più sensata oggi vado dal prof per esternare altri dubbi (l'applicazione è un progetto didattico) e con l'occasione gli ho esposto il dilemma di prima (maledetto a me che l'ho fatto)... l'unica risposta che ho avuto è "valuta la scelta migliore, ma stia attento ai principi OO dunque anche al riuso". Ho provato a vedere situazioni simili su internet ma non ho trovato niente che potesse aiutarmi.
duald è offline   Rispondi citando il messaggio o parte di esso
Old 09-07-2012, 15:36   #3
wizard1993
Senior Member
 
L'Avatar di wizard1993
 
Iscritto dal: Apr 2006
Messaggi: 22462
anche io solitamente opto per la seconda versione.
Anche se, al posto delle properties, in caso il programma abbia usi un db preferisco farmi una tabella apposta.
__________________
amd a64x2 4400+ sk939;asus a8n-sli; 2x1gb ddr400; x850 crossfire; 2 x western digital abys 320gb|| asus g1
Se striscia fulmina, se svolazza l'ammazza
wizard1993 è offline   Rispondi citando il messaggio o parte di esso
Old 10-07-2012, 17:01   #4
demos88
Senior Member
 
Iscritto dal: Nov 2004
Città: Padova
Messaggi: 2342
edit
__________________
CPU Ryzen 2600 @ 3,95Ghz + Bequiet Dark Rock TF / MB Asus X470-F Gaming / RAM 2x8GB DDR4 G.Skill FlareX 3200 CL14 / VGA Sapphire RX 7900 XT Nitro+ @ 3200Mhz / SSD Samsung 970 Pro 512GB + Sandisk 240GB Plus + Sandisk 960GB Ultra II PSU Seasonic Platinum P-660 / Headset Kingston HyperX Flight

Ultima modifica di demos88 : 10-07-2012 alle 17:07.
demos88 è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2012, 14:36   #5
duald
Junior Member
 
Iscritto dal: Jul 2012
Messaggi: 4
Grazie per la risposta.
E come giudichi l'idea della classe Utility (eventualmente con blocco synchronized)?
Quote:
Un possibile compromesso penso che sia la definizione di una classe di Utility
public class Utility{
private static I_TextGUI textGUI;

public static I_TextGUI getTextGUI(){ return textGUI;}

public static void setTextGUI(I_TextGUI textGUI){
Utility.textGUI = textGUI;
}
Riesce a superare i limiti di entrambe le scelte.

Inoltre, dopo una richiesta da parte di una view, cosa faccio con i dati caricati (cioè etichette) ?? Li mantengo in una struttura utile per le chiamate successive, così da evitare (ad una futura richiesta) una nuova lettura da file (simile Proxy)?? O no??
duald è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Renault Twingo E-Tech Electric: che prezzo! Renault Twingo E-Tech Electric: che prezzo!
Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media Il cuore digitale di F1 a Biggin Hill: l'infrast...
DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica DJI Osmo Mobile 8: lo stabilizzatore per smartph...
Recensione Pura 80 Pro: HUAWEI torna a stupire con foto spettacolari e ricarica superveloce Recensione Pura 80 Pro: HUAWEI torna a stupire c...
Opera Neon: il browser AI agentico di nuova generazione Opera Neon: il browser AI agentico di nuova gene...
Snap e Perplexity unite: dal prossimo an...
La Cina dice addio a NVIDIA? Il governo ...
Microlino, simbolo italiano della mobili...
Apple disattiverà la sincronizzaz...
Google lancia l'allarme: attenzione ai m...
Primo test drive con Leapmotor B10: le c...
'Non può essere un robot': l'uman...
Monopattino elettrico Segway Ninebot Max...
Syberia Remastered è disponibile:...
Sony scopre che tutti i modelli AI hanno...
Amazon nasconde un -15% su 'Seconda Mano...
Due occasioni Apple su Amazon: iPhone 16...
Verso la fine della TV tradizionale? I g...
Cassa JBL a 39€, portatili, smartphone, ...
Cometa interstellare 3I/ATLAS: la sonda ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 02:44.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v