Avatar billede conrad Nybegynder
03. april 2002 - 15:00 Der er 5 kommentarer og
2 løsninger

Forbinde gui og model

Jeg har brug for lidt vejledning omkring udarbejdelse af gui mm.

Jeg har en applikation der groft er opdelt i følgende klasser
GUI, frames menubar mm
LOGIK: foretager beregninger, xmlparser mm. Disse klasser skal kunne benyttes til andre applikationer end den jeg pt udvikler.

"Publisher": denne klasse forbinder GUI og LOGIK laget, samt indeholder den "model" der arbejdes med.

Jeg har prøvet at kigge på MVC eksempler, men jeg synes meget tit at model+controller bliver slået sammen i et.

Nu er det så jeg bliver lidt i tvivl. Jeg har altid hørt at GUI skal være "dum".At der ligger logik i gui som tester hvornår noget skal vises eller ej, kan vel dårligt undgås, men når GUI begynder at kalde funktioner i modellaget så er det jo meget specifikt, og det vil vel kræve omskrivninger af gui for at genbruge den kode i en ny anderledes applikation.

Nå, men som jeg har det nu har de gui klasser der skal udføre ændringer på modellen, en reference til Publisher klassen. Alle events der vedrører ændring af modellen, nye beregninger, gentegning af model etc sendes videre til publisher klassen.

eksempel fra en gui klasse der håndterer et museclick

publisher.handlePopUpEvent(x,y,Publisher.POPM1EVENT2);

Så sørger Publisher klassen for at kalde metoder i LOGIK laget og eventuelt opdatere guilaget.

Jeg kan selv se fordele/ulemper ved denne konstruktion

Fordele:Der kan holdes styr på guis tilstand
        Store dele af GUI vil kunne benyttes umiddelbart af andre Publisher klasser

Ulemper:langsom Listener eksekvering
        Svært at læse hvad der sker i gui koden
        ??????

Jeg er klar over dette er et MEGET abstrakt spørgsmål og håber da også bare på lidt guldkorn














 





Avatar billede greybeard Nybegynder
03. april 2002 - 18:22 #1
Se evt. her. Det er en relativt enkel og overskuelig fortolkning af MVC

http://nostromo.ikasths.dk/docjava/default.htm
Avatar billede conrad Nybegynder
04. april 2002 - 07:39 #2
Kan du ikke give et specifikt link, da jeg har problemer med at se hele menuen i 800*600 oploesning (ja nogle universiteter er helt fremme i skoene med at opdatere edb udstyr :)
Avatar billede pugnaris Nybegynder
04. april 2002 - 08:56 #3
Hejsa conrad, ved at bruge MVC i J2EE løsning fandt jeg følgende to links meget nyttige, det kan være du skulle chekke dem ud.

http://java.sun.com/blueprints/patterns/j2ee_patterns/model_view_controller

http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e_draft/web-tier4.html

Du har ret at GUI'en som sådan skal være dum, og det skal være modellen der indeholder tilstanden for din applikation.
Lige nu er vi igang med et projekt der netop omhandler noget dynamisk hjemmeside contentmanagement. Der bruger vi Java beans som model klasser, servlets som dispatcher(controller) til JSP sider(View).
Hvis du skriver lidt mindre abstrakt kan det være du kan få noget mere hjællp.

Hilsen Pugnaris ;-)
Avatar billede steel Praktikant
04. april 2002 - 12:23 #4
Hej Conrad,

  Det lyder som om du vil bruge Swing i din første implementation af systemet. I Swing er det ikke model og controller, der er tæt koblet, men derimod view og controller. Det er noget, de kalder en 'delegate'. Læs mere her:

http://java.sun.com/products/jfc/tsc/articles/architecture/index.html
Avatar billede pugnaris Nybegynder
04. april 2002 - 16:17 #5
Hej Steel, det burde være ligemeget, MVC er jo netop til for at øge skalerbarhed for et system, og dermed også at du kan udskifte dit view som  det passer dig!!!
Det er så controller der afgør hvilket 'view' den skal vælge!! ;-)
Cool link forresten!
Avatar billede steel Praktikant
04. april 2002 - 16:27 #6
Ja, ja, den er go' med dig...



;-]
Avatar billede conrad Nybegynder
23. april 2002 - 04:56 #7
jeg takker for behagelig samtale :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester