| 
 | |||||||
| 
 | 
|  | 
|  | 
|  | Strumenti | 
|  07-07-2012, 17:24 | #1 | 
| 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. | 
|   |   | 
|  09-07-2012, 14:35 | #2 | 
| 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.
		 | 
|   |   | 
|  09-07-2012, 15:36 | #3 | 
| Senior Member 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 | 
|   |   | 
|  10-07-2012, 17:01 | #4 | 
| 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. | 
|   |   | 
|  11-07-2012, 14:36 | #5 | |
| 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: 
 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?? | |
|   |   | 
|   | 
| Strumenti | |
| 
 | 
 | 
Tutti gli orari sono GMT +1. Ora sono le: 12:32.









 
		 
		 
		 
		






 
  
 



 
                        
                        










