Newsgroup: it.comp.java
Titolo: Progettare Correttamente delle UI ?

Salve a tutti ,
ho qualche difficoltà a progettare UI e non riesco a capire devvero il motivo ...
bell'inizio :-)
dunque ,
sono in ambiente Object Oriented , client Side .
- Modello resiede sul Client , 1 Classe Principale, una trentina di sottoOggetti interno bla bla ;
- dataBase resiede sul Client (documento XML, diciamo "database" vabbe' ) ;
non ha importanza , ma forse vi interessa ....
Problema :
il mio processo di svilupo è :
. Analisi
. Progettazione
. Implementazione
quando scrivo i miei progetti ,
creo dei programmi di TEST di sistema , e mi traccio i risultati su una piccola consolle di visualizzazione ..
in questo modo scrivo il Modello ma senza UI ... visto che non so ancora che aspetto abbia .
ora il modello funziona ,
devo creare la UI ... esatto ?
faccio un'analisi dei requisiti ,
e mi blocco .
Non riesco a implementare correttamente MVC , e neppure Document/View quindi ....
Non riesco a capire come faccio a LEGARE la UI al MODELLO ...
teoriacamente dovrebbe essere cosi' :
m = new Model(); // questo è tutto il mio programma
v = new View(m);// questa è la visualizzazione
ma attualmente il Modello(programma principale) contiene diverse composizioni di Oggetti che dialogano parlano tra di loro, la View
non lo sa ovviamente ...
devo ritornare alla fase di progettazione e convertire ogni VISTA in una Classe ?
e quindi il vocabolario di sistema aumentera' di altre "n" classi ?
Sono un pò confuso ,
non riesco a pensare come puo' un Modello di 20mila righe di codice , con 300 istanze di oggetti dentro COME possa adattarsi ad una
View che fino all'implementazione non avevo neppure pensato ...
letture ?
Consigli ?
Libri ?
So analizzare,progettare,implementare un Modello ,
So analizzare,progettare,implementare una UI con MVC ,
ma non riesco a capire come diavolo faccio prendere il mio modello ed associargli una UI...senza disporre il mio modello di 20 mila
listener e 30 mila metodi pubblici .
Non riesco a capire con quale logica si integrano i 2 mondi ....
Fiz

 listener e 30 mila metodi pubblici .
Qui sta il difficile...
Ma esageri sulle cifre. Pero', fai la conta di quanti metodi ha JTable o
JTree.
Comunque quasi sempre ho trovato molto difficile disaccoppiare il modello
dalla vista completamente. Spesso sono ricorso a layer intermedi, e ha
funzionato, ma a volte serve proprio un intimo contatto. Su questa scia puoi
leggere gli articoli di allen holub su JavaWorld:
http://www.javaworld.com/javaworld/jw-07-1999/jw-07-toolbox.html
Ma non sono la soluzione secondo me.
Finally, se risolvi in modo generico il tuo problema, fallo sapere in giro.
Simon

: > Salve a tutti ,
: > ho qualche difficoltà a progettare UI e non riesco a capire devvero il
: motivo ...
:
: Te lo dico io: una delle cose più difficili da fare, secondo me.
ma va ?
non me ne ero accorto :-)
: > teoriacamente dovrebbe essere cosi' :
: >
: > m = new Model(); // questo è tutto il mio programma
: > v = new View(m);// questa è la visualizzazione
:
: Circa Swing. Va bene in molti casi, ma non sempre. Va di solito molto bene
: per i modelli e le view semplici e Swing-simili.
Si , certo e se scrivo in C++ ?
Dico semplicemente ,
che c'è qualcosa di errato a prescindere la linguaggio usato .
: > ma attualmente il Modello(programma principale) contiene diverse
: composizioni di Oggetti che dialogano parlano tra di loro, la View
: > non lo sa ovviamente ...
:
: Ma non stai parlando del fatto che Model è veramente tutto il tuo programma
: vero ?
: Voglio dire, model è una parte del sistema che vuoi presentare all'utente e
: view è la vista con la quale vuoi farlo.
Il problema è qui ,
so che Model è quella parte del sistema che VOGLIO presentare...
ma l'analisi e la progettazione (e l'implementazione ) ti portano ad avere un programma principale tipo questo :
a = new Programma();
qui dentro ci sono decine di istanze di oggetti ,
libri , capitoli , collegamenti a database tramite un oggetto CommentoLibro ...
ecco le 20 mila righe :)
non tutte in una classe , ma date dalla somma delle composizioni internet degli Oggetti ;
: Non puoi fare una GUI con tutto dentro (hai lo schermo troppo piccolo :),
: per questo si usano le menubar.
:
: > devo ritornare alla fase di progettazione e convertire ogni VISTA in una
: Classe ?
: > e quindi il vocabolario di sistema aumentera' di altre "n" classi ?
:
: Qui mi sono perso su quello che intendi dire...
Leggi quello che ho scritto su :
so che Model è quella parte del sistema che VOGLIO presentare...
ma l'analisi e la progettazione (e l'implementazione ) ti portano ad avere un programma principale tipo questo :
a = new Programma();
Ora , a questo punto è assolutamente impossibile associargli una UI senza modificare una riga della classe Programma ;
mi spiego ?
Quindi dovrei ritornare alla fase di OOA,OOD per ridisegnare gli stati di Visualizzazione ?
: > Sono un pò confuso ,
: > non riesco a pensare come puo' un Modello di 20mila righe di codice , con
: 300 istanze di oggetti dentro COME possa adattarsi ad una
: > View che fino all'implementazione non avevo neppure pensato ...
:
: Ma stai scherzando vero ? Non puoi veramente aver fatto una classe di 20k
: righe ?!?
si, ma è una superset :)
: >
: > letture ?
: > Consigli ?
: > Libri ?
: Guarda altro codice: Eclipse, IntelliJ EAP, netbeans. Non che abbiano
: risolto il problema di progettare GUI, ma ci stanno provando.
Non vorrei guardare altro codice ,
credo che i dettagli di OOD ed OOA non traspirerebbero dal codice ... a meno di un duro e faticoso lavoro .
: > So analizzare,progettare,implementare un Modello ,
: > So analizzare,progettare,implementare una UI con MVC ,
: >
: > ma non riesco a capire come diavolo faccio prendere il mio modello ed
: associargli una UI...senza disporre il mio modello di 20 mila
: > listener e 30 mila metodi pubblici .
:
: Qui sta il difficile...
: Ma esageri sulle cifre. Pero', fai la conta di quanti metodi ha JTable o
: JTree.
Inffatti.
: Comunque quasi sempre ho trovato molto difficile disaccoppiare il modello
: dalla vista completamente. Spesso sono ricorso a layer intermedi, e ha
: funzionato, ma a volte serve proprio un intimo contatto. Su questa scia puoi
: leggere gli articoli di allen holub su JavaWorld:
: 
http://www.javaworld.com/javaworld/jw-07-1999/jw-07-toolbox.html
: Ma non sono la soluzione secondo me.
:
: Finally, se risolvi in modo generico il tuo problema, fallo sapere in giro.
Sto leggendo un libro di UML ,
e lo trovo interessantissimo perchè parla di OOA ed OOD nelle GUI ...(ora le accenna soltanto , dopo non so...)
è molto teorico ,
sono a pagina 65 ... oggi faccio un'altra 30ina di pagine :-)
Il libro è " Analisi di Sistemi Informativi con UML "
Bellissimo !
Fiz