[UML] - Hoe MVC toepassen?

Pagina: 1
Acties:

  • Cavalera125
  • Registratie: December 2003
  • Nu online
Hoi,

ik heb even een vereenvoudigde versie van een uml klassediagram gemaakt.

Afbeeldingslocatie: http://www.solidweb.nl/~roel/upload/simple_uml.jpg

Fiets en wiel zijn objecten die in het JFrame (via een andere klasse) uit de DB geladen worden. Vanuit hier wordt een fiets aangemaakt en de wielen. Elke fiets heeft een view en elk wiel heeft twee views, small en large. Via observer/observable worden de views geupdate. Kan ik het JFrame als controller gebruiken?

Dus:
Wiel = model
WielViewSmall = view
WielViewLarge = view
JFrame = controller

Of moet ik een aparte controller maken voor elk wiel dat aangemaakt wordt. Die vervolgens het wiel instantieert en de view instantieert en de communicatie van de view naar het wiel stuurt?

Dezelfde vragen dus ook voor Fiets.

Verwijderd

ik heb wel niet veel ervaring dus weet niet of mijn oplossing goed is maar de view en controller zet ik altijd bijeen dwz in 1 klasse en de models uiteraard apart

  • Nick_S
  • Registratie: Juni 2003
  • Laatst online: 22-04 03:55

Nick_S

++?????++ Out of Cheese Error

Als je je JFrame als Controller gebruikt, zit je altijd vast aan Swing. Als je hiervoor een aparte klasse maakt, kun je je View makkelijker om zetten naar JSP of een andere vorm van presentatie. Hierdoor hoeven je Controller en je Model niet te veranderen, maar je View alleen de goeie interfaces te implementeren.

Het lijkt mij dus ook handiger om je Controller View-onafhankelijk te maken.

'Nae King! Nae quin! Nae Laird! Nae master! We willna' be fooled agin!'


  • mcB
  • Registratie: Mei 2002
  • Laatst online: 22-04 11:47

mcB

Ik neem aan dat de acties die je uit wilt kunnen voeren op een wiel voor ieder wiel gelijk zijn. Hetzelfde voor een fiets.
Dat betekent dat je voor wiel een controller hebt en voor fiets ook. Hoe het model dan reageert dat is aan jou.
...en de communicatie van de view naar het wiel stuurt
Hier begrijp ik je niet helemaal. Het lijkt me toch niet dat de view iets aan het model moet vertellen.. dat zou de omgekeerde wereld zijn,.. ;)

Strix (Skullflame)


  • momania
  • Registratie: Mei 2000
  • Laatst online: 19:41

momania

iPhone 30! Bam!

Je JFrame is hier een framework voor je views en hoort dus bij je view.
Dit moet je dus geen controller functie geven, zeker om wat Nick_S al zegt: je maakt je dan afhankelijk van een bepaalde view; in dit geval Swing.

Dit geeft wel een aardig beeld van hoe het zou moeten zijn: http://en.wikipedia.org/wiki/MVC :)

Neem je whisky mee, is het te weinig... *zucht*


  • Cavalera125
  • Registratie: December 2003
  • Nu online
mcB schreef op dinsdag 02 augustus 2005 @ 10:34:
Hier begrijp ik je niet helemaal. Het lijkt me toch niet dat de view iets aan het model moet vertellen.. dat zou de omgekeerde wereld zijn,.. ;)
Hier bedoel ik dus dat de userinput vanuit de view via de controller wordt doorgegeven aan het model.

Voor ieder model een aparte controller dus. Moet de controller het model en de view instantieren, of 'mag' dat ook in het JFrame welke dan bij het instantieren van de controller een reference van het model en de view meegeeft?

Uiteindelijk wil ik in één scherm meerdere fietsen kunnen tonen met dus meerdere wielen:
code:
1
2
3
4
5
6
7
8
9
10
mainview
|
|-- FietsView
  |
  |-- WielView of WielViewLarge
  |-- WielView of WielViewLarge
|-- FietsView
  |
  |-- WielView of WielViewLarge
  |-- WielView of WielViewLarge

Maakt dat het verhaal anders?

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Je moet er ook rekening mee houden dat de models die Swing vaak aanbied (TableModel, ListModel, Document) vaak niets anders zijn dan adapters naar het echte model: bv een set met kinderen van een persoon. Deze models heten ook wel presentation models.

  • Cavalera125
  • Registratie: December 2003
  • Nu online
Als ik dus aparte controllers maak, dan krijg ik zoiets als dit:

Afbeeldingslocatie: http://www.solidweb.nl/~roel/upload/simple_uml2.jpg

Ik vraag me nu nog af waar ik de fiets en wiel moet instantieren, maakt dat wat uit? Kan dat gewoon in de 'applicatie' (voor het gemak even het JFrame)? En dan dus een referentie van deze objecten meegeven aan de controllers?

Uiteindelijk heb ik de view van een wiel nodig in de view van de fiets, hoe ga ik dat weergeven e.d.? Volgens mij raak ik de kluts ff kwijt :)

Verwijderd

Volgens mij moet je het model zo generiek mogelijk opzetten en dat zou betekenen dat je zo min mogelijk controllers implementeerd. Misschien heb je iets aan dit simpele voorbeeld, waarbij slechts 1 controller wordt gebruikt en meerdere actionklasses die je bedrijfslogica implementeren: [rml]DoktorAnders in "[ Jsp/Servlets]RequestDispatcher"[/rml]

  • Cavalera125
  • Registratie: December 2003
  • Nu online
Hmm, maar ik krijg dus straks view in view, hoe kan ik dat weergeven in mijn klassediagram? Het gaat er dus om dat de view van Fiets de views van Wiel bevat.
Pagina: 1