Newsgroup: it.comp.java
Titolo: organizzazione classi java

Ho fatto un sito con una serie di pagine jsp(girano su tomcat5-apache) che
contengono codice scritto in maniera procedurale senza cioè l’utilizzo di
beans o classi java
Ora volevo riorganizzare il tutto utilizzando delle classi java .
La mia idea era organizzare le classi in questa maniera: per ogni gruppo
di pagine(che sono organizzate già in gruppi appunto) fare 1 classe con
una serie dei metodi non statici (mi sembra + corretto usare dei metodi
non statici) che eseguono operazioni sul db tipo delete, piuttosto che
lanciare delle stored procedure o ancora metodi che scrivono e leggono dal
fyle system.
In ogni pagina poi istanziare un oggetto di questa classe e via via
richiamare i metodi.
E’ una maniera corretta di organizzare le classi o è una gran boiata??
grazie
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 
Ti consoglio di fare prima una bella analisi del sistema come se dovessi 
rifarlo daccapo (UML ad esempio). Come l'hai realizzato non penso sia 
opportuno riutilizzarlo. Una volta analizzato e stabiliti i servizi e 
tutto il resto ti verrà più semplice realizzarlo dividendo la parte di 
presentazione (jsp, ecc..) dalla logica (servlets, classi java, ecc...) 
e dalla persistenza nel db. Così in futuro sarà sicuramente più portato 
ad essere modificabile.
ciao....

 ciao....
(mmm dovrei prima vedermi l'UML...)
Scusa io ho realizzato un sito normalmente, dividendolo in varie
funzionalità che rispecchiano quelle reali, non penso di avere fatto nulla
di strano.
ora mi interesserebbe migliorarlo un minimo utilizzando delle classi
piuttosto  
che del codice procedurale; è sbagliato???
riorganizzarlo mi sembrerebbe inutile, sono un ottantina di pagine e poi
cmq è organizzato abbastanza bene in rappporto alle sue funzionalità...
cmq ci pensero' grazie


 
Dipende dal tuo tempo! "Migliorarlo utilizzando delle classi" sarà un 
lavoraccio perchè è facile cadere in errore! Forse non mi sono spiegato 
bene! Ti suggerivo di analizzarlo nuovamente non perchè non 
rispecchiasse delle funzionalità o dei servizi. Questo non posso saperlo 
perchè non so qual'è lo scopo del tuo sito e cosa offre. Piuttosto per 
impostare una giusta struttura al sito!!! Per struttura non intendo come 
si presentano le varie finestre, quello è pura presentazione, la parte 
grafica di un applicazione java per intenderci, ma darle un architettura 
(three tier, two tier, ecc... come si suol dire).
Ad esempio:
1 livello presentazione (pagine jsp, html, xml, ecc...)
2 livello logico (classi java)
3 livello persistenza dati (dbms)
A quanto ho capito hai fuso i primi due utilizzando solo delle jsp al 
cui interno ci sono addirittura delle query sul database.
Ricavare la parte logica da queste jsp, almeno per quanto credo, sarà un 
lavoraccio.
D'altra parte una politica, a mio parere più corretta, sarebbe quella di 
partire prima dalla parte logica che offre i servizi e le funzionalità 
del sito e poi da questa ricavarne la presentazione in qualsiasi 
linguaggio vuoi (jsp,html,...). Per questo dico che è un lavoraccio 
riutilizzare quello che hai a disposizione. Vorrebbe dire correggere 
qualcosa che non segue un filo logico, ma che ha mischiato tutto in un 
calderone (le jsp).
Non voglio assolutamente criticarti con questo! Non pensar male! E' un 
consiglio il mio.
Spero di essere stato delucidativo questa volta! ;)
ciao...

> > 

si grazie.
i miei problemi sono 2:il livello di conoscenza di java-jsp(scarsa) e il
tempo(poco).
adesso che ti ho parlato ci aggiungerei un terzo problema: non conosco
bene come si sviluppa una simile architettura.
appena avro' tempo cerchero' di sopperire alle mie mancanze.
nonostante tutto mi sembrava utile e più pulito(magari a te fa
vomitare...)riorganizzare il possibile con delle classi java, facendo cosi
magari anche una prima esperienza in questo senso.
se è anche un piccolo passo avanti, un miglioramento minimo, lo faccio
volentieri altrimenti mene frego e proseguo cosi.
aspetto un parere(che tenga cmq conto del mio stato)
ti ringrazio tantissimo


Ciao, ho letto il 3d... imho:
Se non conosci i concetti di OOA,OOD molto probabilmente riporterai
semplicemente nelle classi ciò che facevi nelle pagine, quindi semplicemente
sposterai il codice dalle pagine ad una classe...non vedo il vantaggio che
ne avrai in termini di "struttura"...anzi, un software basato su oggetti
fatto male non può che portare svantaggi.
Ti consiglio quindi quanto segue:
1. Per il momento lascia tutto com'è.
2. Leggi (almeno) un libro introduttivo di analisi/progettazione ad oggetti
(imparerai anche un po' di UML [ e ti consiglio di impararlo poco a
poco])...
dai un occhi a "Progettazione del software e Design Pattern in Java -
apogeo" se lo trovi interessante potrebbe fare al caso tuo.
3. Rielabora tutto il sito con i concetti di cui al punto 2...magari non
farlo da solo.
4. prova ad aggiungere qualche funzionalità al sito: se ti incasini
significa che hai fatto male il progetto...in tal caso ripeti dal punto 2 ;)
Purtroppo non è semplice imparare a fare una discreta analisi, a
progettare... richiede tempo.
Tuttavia ti consiglio di farlo al più presto.
bye!

 volentieri altrimenti mene frego e proseguo cosi.
Un miglioramento lo è di certo!!! E sarebbe sbagliato strafregartene!!!
ciao...

beh ok appena posso cerco qualcosa che mi introduca
all'analisi/progettazione- per intanto proseguo nella mia idea; beh in
parte nelle classi riportero' quel che facevo nelle pagine ma molte
funzioni possono essere generalizzate e già la cosa mi sembra buona.
val la pena imparare a fare qualcosina in più, poi studiare altro e magari
poi applicarlo e andare avanti in un altro pezzettino.
sicuramente faro' una cosa criticabile ma intanto inizio; purtroppo per
motivi lavorativi mi manca il tempo e nessuno (con questo tempo a
disposizione)riuscirebbe a fare un progetto perfetto partendo da 0: è un
modo per avvicinare Java poco sano ma è quello impostomi dalla mia
situazione 
ciao e grazie


 grazie
Ciao
I suggerimenti che ti hanno dato sono sicuramente giusti, ma un pochino
radicali.
Ricorda pero' che qua sei su un forum di javaisti purosangue che cercano
quotidianamente il meglio.
Quello che ti posso dire io e' che ogni passo avanti e meglio di nulla.
Quindi fai bene a provarci.
Quello che ti posso suggerire io e la seguente organizzazione.
prima di tutto fai una classe base (se proprio vuoi e sai cosa e' la fai
abstract, ma e' lo stesso)
In questa classe metti i servizi base del tuo sito che potrebbero servire in
tutte le pagine.
se non ci sono servizi base, falla lo stesso vuota.
Ora fai la stessa cosa per eventuali macro aree logiche del sito. che
saranno 2 o 3.
Supponiamo
1. pagine di pura presntazione
2. pagine di form
3. pagine anomale
hai gia' 1 classe con 3 figlie
ora fai una classe ( che poi e' un bean, cosi' d'ora in avanti sai cosa
sono, non era poi cosi' difficile he he) per ogni pagina, e la fai estendere
una delle 3 classi del tuo secondo livello.
probabilmente non sara' una organizzazione ottimale.
Ma e' un inizio, sicuramente nella direzione giusta e dal quale se un giorno
il sito crescera' potrai forse muoverti con maggiore ordine.
cya Nicola
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 cya Nicola

ok grazie
I beans mi pare di ricordare fossero delle classi java comuni con qualche
regola(nel senso che si devono implementare alcuni metodi o qcosa di
simile); se posso mi guardo come si usano altrimenti uso delle normali
classi java.
Dunque vediamo se ho capito(mi toccherą approfondire l'ereditarietą ma
questo non dovrebbe portare via molto tempo): tu dici di creare 3 livelli
in modo che le classi a livello + basso possano usufruire sia dei metodi +
generali sia dei metodi + specifici propri di quella pagina giusto?


 generali sia dei metodi + specifici propri di quella pagina giusto?
si, anche se alto e basso potrebbero creare confusione di termini.
quindi le classi foglie, quelle della pagina, hanno metodi specifici della
pagina, metodi generici del tipo di pagina ( per esempio del form) e infine
metodi ancora + generici di tutto il sito.


ok grazie mille, agiro' in questo senso.
faro' fatica magari a mantenere la suddivisione
1. pagine di pura presntazione
2. pagine di form
3. pagine anomale
anche perchè molte pagine sono state generate con un software che usa
delle sue classi e le pagine che vorrei organizzare io sono per lo +
pagine di transizione(non quindi visibili) che compiono determinate
operazioni.
cmq vedro' di creare una suddivisione logica adatta.
grazie per i consigli



di niente! buon lavoro!