Newsgroup: it.comp.java
Titolo: Variabili statiche e stile

Salve,
sto facendo un progetto per un esame all'università e ho la necessità di 
avere alcuni vettori visibili da tutte le classi del mio programma.
Per ora ho definito una classe del tipo
public class generale {
static vector uno;
static vector due;
//
}
a cui poi accederò tramite 
generale.uno = 10;
e così via.
sbaglio o dal punto di vista delle programmazione OO questo non è molto 
corretto?
altrimenti potrei passare i vettori come parametro per ogni membro delle 
altre classi che andrò a chiamare...ma mi pare veramente brutto e 
ridondante.
non c'è un'altra soluzione??
-- 
Nuno® su Charlize (con la bua) con Denise a tracolla.
"sono cretino dentro, mi riprendo in fretta.." cit. GSchicco
ICQ - 140416778
(elimina OGNI DUBBIO per la mail)

usa il pattern singleton.
se hai bisogno di ulteriori info fammi sapere
"Nuno Bettencourt" <OGNIe...@DUBBIOquipo.it> ha scritto nel messaggio 
news:Xns9607801...@213.140.2.16...


 non c'è un'altra soluzione??
Singleton pattern...
-- 
Andrea Sansottera
UGIdotNET [Italian] 
http://www.ugidotnet.org
My weblog [Italian] 
http://blogs.ugidotnet.org/andrew/

 
ho googlato e ho trovato che questo Singleton Pattern si usa quando serve 
una classe che generi una sola istanza...ma non vedo come ciň possa 
aiutarmi. 
potrei applicare tale pattern alla mia classe globale ma oltre a ottenere 
che tale classe sia instanziabile una sola volta...cosa ci guadagno?
-- 
NunoŽ su Charlize (con la bua) con Denise a tracolla.


 
ho capito come usarlo ma non mi funziona. spiego:
ho dichiarato e inizializzato i miei Vector all'interno del costruttore 
private ma cosě facendo, dopo che la classe č stata instanziata, non riesco 
ad accedervi da fuori. Perchč? non dovrebbero essere public?
se invece li definisco all'infuori del costruttore va tutto bene...ma cosě 
praticamente non č cambiato nulla.
ho notato inoltre che anche definendo un metodo nella mia classe globale 
(quella col Singleton Patterin) che tenta di accedere a quelle variabili 
ottengo errore xkč non trova ciň che io chiedo.
sembra come se creasse l'istanza della classe ma senza passare per il 
costruttore e quindi senza creare gli oggetti :|


 non c'è un'altra soluzione??
sicuramente si: devi riflettere sulla tua frase "ho la necessità di avere
alcuni vettori visibili da tutte le classi". Sei sicuro di avere questa
necessità? Molto probabilmente assegnando correttamente agli oggetti le
responsabilità questa tua necessità presunta scomparirebbe.
A seconda della difficoltà del problema di cui ti stai occupando - e
dell'esperienza in OO che presumo poca -  potrebbe però non essere
semplicissimo assegnare correttamente le responsabilità. Tu cerca di farti
guidare dal principio (pattern di assegnamento responsabilità) di
"Expert", che può essere riassunto in "faccia i calcoli (i metodi) chi ha
le informazioni per farlo (l'esperto)".
Se cerchi expert pattern e/o grasp pattern trovi più info al riguardo. 
ciao
uL
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 
ho 2 vettori e un array:
un vettore contiene delle città
un vettore contiene dei mezzi di trasporto
l'array (a 2 dimensioni) contiene le distanze tra le città.
il mio programma fa questo:
prende una città di partenza, una di arrivo, verifica se in quella di 
partenza è disponibile un mezzo che possa coprire quella distanza e sposta 
il mezzo nella posizione di arrivo.
questo per dirla in breve.
io ho pensato di creare una classe che gestisca le operazioni, più le 
classi satellite che eseguano le operazioni.
dunque partendo dall'inizio si scelgono le due città, associate a 2 indici 
del vettore. Questi due indici verranno usati sulla matrice delle distanze 
per trovare la distanza tra le 2 città. A questo punto si vede se esiste un 
mezzo adatto nella città di partenza e gli si cambia di posizione. Il 
vettore dei mezzi lo tengo per comodità così da poter operare su ogni mezzo 
tramite indice.
Per poter fare in modo che tutti i metodi delle differenti classi (quella 
che si occupa delle città, quella dei mezzi, quella delle distanze 
ecc...ec...) funzionino correttamente devono sempre avere a disposizione 
questi vettori. In questa maniera il programma forse non è OO puro ma ti 
assicuro che è molto snello ed efficace. Se invece iniziassi a passare 
continuamente riferimenti agli oggetti, suddividessi il compito della 
classe madre in altre minuscole classi e così via il tutto assumerebbe 
delle proporzioni bibliche...ma sarebbe di certo molto più OO oriented.
approcci a cui nn ho pensato?


 presunta scomparirebbe.
quoto.
I singleton, che uso anchio quando serve,, sono oggi abusati
in oop un caso come il tuo si risolve senza sigleton molto meglio
il singleton, inoltre ha problemi di sincronizzazione se scrive, come in
questo caso.
L'approccio normale vuole che una prima classe inizializza le strutture dati
e poi le passa alle classe che ci devono lavorare sopra. se le classi usano
in modo indispensabile questi dati puoi mettere i vettori come parametro del
costruttore e memorizzarle poi in instance.
e'normale oop.
Scoprirai che altre classi non necessitano delle strutture dati. classi di
utilita', di gestione tempo, di formattazione, di calcoli puri
e cosi' avrai varie tronconi di classi eccetera.
e nasce una applicazione.
Se hai dubbi leggi qualcosa sulla oop. c'e' il mare di letteratura a
proposito.
ciao Nicola
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 delle proporzioni bibliche...ma sarebbe di certo molto più OO oriented.
Non assumerebbe proporzioni bibliche ne' sarebbe meno efficiente, posto
che sia ben fatto. Leggiti qualcosa sui GRASP pattern e prova a ripensare
la tua applicazione, poi magari posta un po' di codice. Questo se vuoi
imparare un po' di oo, altrimenti lascia tutto così com'è in paradigma
imperativo - che è comunque corretto - lascia stare i singleton e rimanda
quest'attività piu' in la' nel tempo
my 0.02 euros


 
già ma devo consegnare il tutto il 5 marzo...no, non sono io che mi sono 
ricordato all'ultimo è il prof che cambia continuamente idea. 
:) ma anche :(
my 0.000003 euros
