/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Et spørgsmål om design
Fra : Peter


Dato : 16-04-03 10:34

Jeg har lavet en applikation som søger efter nogle data. Det ser ud som
følger:

|GUI| --> |Controller| --> |SpecifikSøg| --> |DataHåndtering|

Det jeg har ivist ovenfor skal forstille et klassediagram. Hvor jeg har en
GUI en Controller til denne GUI som tager sig af alt actioncontroll,
derefter har jeg en bestemt søgning, som bruger en klasse DataHåndtering til
at behandle de fundne data.

I klassen DataHåndtering har nogle oplysninger som gerne skal vises i GUI'en
efterhånden som de findes.

Men hvordan laver jeg det pænest? Jeg har lavet det ved atv sende en
reference til GUI med helt over til DataHåndtering, men det se bare ikke
særlig pænt ud. Er der nogen som har et bedre forslag?



 
 
Peter Lind (16-04-2003)
Kommentar
Fra : Peter Lind


Dato : 16-04-03 15:41


"Peter" <dj_pnr@hotmail.com> wrote in message
news:3e9d23a0@news.wineasy.se...
> Jeg har lavet en applikation som søger efter nogle data. Det ser ud som
> følger:
>
> |GUI| --> |Controller| --> |SpecifikSøg| --> |DataHåndtering|
>
> Det jeg har ivist ovenfor skal forstille et klassediagram. Hvor jeg har en
> GUI en Controller til denne GUI som tager sig af alt actioncontroll,
> derefter har jeg en bestemt søgning, som bruger en klasse DataHåndtering
til
> at behandle de fundne data.
>
> I klassen DataHåndtering har nogle oplysninger som gerne skal vises i
GUI'en
> efterhånden som de findes.
>
> Men hvordan laver jeg det pænest?

Hmm...
Det mest rigtige vil vel være at bruge et observer-pattern. GUI tingen
observerer DataHåndteringen, og får at vide når der sker ændringer.

Rent praktisk skal GUI'en implementere en art propertyChangeListener (kan
være en standard bean ting, eller du kan lave din helt egen. Den skal have
mindst en metode, nemlig propertyChanged( ).
GUI skal så registrere sig selv ved DataHåndteringen, altså kalde en
addPropertyChangeListener( GUI ) metode i DataHåndtering, inden hele
systemet sættes i sving. Det kræver selvfølgelig at GUI skal kende
DataHåndtering inden SpecifikSøg er sat igang...

Så, måske er du nødt til at lave et lidt mere rigtigt MVC
(Model-View-Controller) pattern, hvor du i controller'en, opretter både GUI
(View) og en eller anden DataModel (måske din DataHåndtering, måske en
enklere udgave - du kender måske ideen fra JTable og dens TableModel.)
Når controlleren opretter View og Model, så registrerer den også View som en
listener på propertyChanges i Model'en. Og når der skal laves en søgning, så
får SpecifikSøg og DataHåndtering (hvad det så end er) en reference til
modellen med, så de ved at data skal fyldes ind i den.

Det lyder vist lidt forvirrende, men jeg er ikke helt klar hvor meget du
kender til disse patterns, og det er også lidt lang tid siden jeg selv har
lavet noget ved dem.
Men ideerne kan også sagtens bruges i forbindelse med dit andet spørgsmål,
om JTables, som jeg svarer på om lidt.

mvh
Peter Lind



Lars Dam (16-04-2003)
Kommentar
Fra : Lars Dam


Dato : 16-04-03 15:52

On 16 Apr 2003 10:34:25 +0100
"Peter" <dj_pnr@hotmail.com> wrote:

> Jeg har lavet en applikation som søger efter nogle data. Det ser ud som
> følger:
>
> |GUI| --> |Controller| --> |SpecifikSøg| --> |DataHåndtering|
>
> Det jeg har ivist ovenfor skal forstille et klassediagram. Hvor jeg har en
> GUI en Controller til denne GUI som tager sig af alt actioncontroll,
> derefter har jeg en bestemt søgning, som bruger en klasse DataHåndtering til
> at behandle de fundne data.
>
> I klassen DataHåndtering har nogle oplysninger som gerne skal vises i GUI'en
> efterhånden som de findes.
>
> Men hvordan laver jeg det pænest? Jeg har lavet det ved atv sende en
> reference til GUI med helt over til DataHåndtering, men det se bare ikke
> særlig pænt ud. Er der nogen som har et bedre forslag?

Brug noget publish subscribe mekansime (der kører en tråd om observer pattern - noget i den stil).

Dvs. at hver gang din data håndtering ændrer tilstand, så skal den sende en besked til alle 'subscribers'. Disse reagerer så på disse events.

Du kan så lade din controller være subscriber og når den får en event, så opdaterer den gui.

vh. ld

Søg
Reklame
Statistik
Spørgsmål : 177460
Tips : 31964
Nyheder : 719565
Indlæg : 6408200
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste