Vin
Legacy Member
Hallo,
Ik vroeg me af wat de meest elegante manier is om een applicatie te schrijven volgens het MVC principe.
Mijn prof programmeren (K. Coolsaet) drukte vorig jaar enorm hard op stijl en herbruikbaarheid, vandaar deze vraag. Ook omdat ik me afvraag wat het meeste gedaan wordt.
Bon, stel dat je een applicatie schrijft met een GUI, bestaande uit verschillende onderdelen. Die verschillende onderdelen hangen deels aan elkaar vast in die zin dat een verandering van onderdeel x ook een verandering in onderdeel y teweeg brengt.
Mijn vraag nu: hoe wordt dit het meeste/meest stijlvol/meest herbruikbaar/... aangepakt.
A) Je groepeert view en controller (hetgeen men ook een "interface" noemt) en laat deze met de nodige modellen communiceren.
Voordelen: je kan elk onderdeel van je applicatie in een aparte package steken. Dit zorgt er voor dat je, wanneer je dit onderdeel ooit in een andere applicatie nodig hebt, je gewoon de package kan importeren et voila.
Nadeel: het kan voorkomen dat je constructoren krijgt met bij wijze van spreken 10 argumenten, omdat bepaalde onderdelen informatie nodig hebben uit zeer veel modellen. Soms kan het ook voorkomen dat je modellen langs 5 klassen moet doorgeven eer ze hun doel bereiken.
=> zeer herbruikbaar en matig uitbreidbaar.
B) Je hebt een hele groep modellen en per onderdeel een view. Je schrijft echter 1 overkoeplende controller voor heel je applicatie.
Voordeel: Elke view registreer je bij de overkoepelende controller, die macht heeft over elk model. Op die manier heeft elke view onmiddellijk toegang tot elk model. Constructoren worden eenvoudiger en je moet de modellen ook niet nodeloos "doorgeven".
Nadeel: Wanneer je een onderdeel wil hergebruiken in een andere applicatie, dan kan je enkel de view recupereren. Al de rest moet je herschrijven.
Nieuwe views toevoegen gaat echter vlot: ze krijgen al hun informatie eenvoudig via de controller.
=> zeer uitbreidbaar, geen overbodige argumenten in constructoren
C) Is er een andere, professionelere manier?
Alvast bedankt voor jullie hulp!
Ik vroeg me af wat de meest elegante manier is om een applicatie te schrijven volgens het MVC principe.
Mijn prof programmeren (K. Coolsaet) drukte vorig jaar enorm hard op stijl en herbruikbaarheid, vandaar deze vraag. Ook omdat ik me afvraag wat het meeste gedaan wordt.
Bon, stel dat je een applicatie schrijft met een GUI, bestaande uit verschillende onderdelen. Die verschillende onderdelen hangen deels aan elkaar vast in die zin dat een verandering van onderdeel x ook een verandering in onderdeel y teweeg brengt.
Mijn vraag nu: hoe wordt dit het meeste/meest stijlvol/meest herbruikbaar/... aangepakt.
A) Je groepeert view en controller (hetgeen men ook een "interface" noemt) en laat deze met de nodige modellen communiceren.
Voordelen: je kan elk onderdeel van je applicatie in een aparte package steken. Dit zorgt er voor dat je, wanneer je dit onderdeel ooit in een andere applicatie nodig hebt, je gewoon de package kan importeren et voila.
Nadeel: het kan voorkomen dat je constructoren krijgt met bij wijze van spreken 10 argumenten, omdat bepaalde onderdelen informatie nodig hebben uit zeer veel modellen. Soms kan het ook voorkomen dat je modellen langs 5 klassen moet doorgeven eer ze hun doel bereiken.
=> zeer herbruikbaar en matig uitbreidbaar.
B) Je hebt een hele groep modellen en per onderdeel een view. Je schrijft echter 1 overkoeplende controller voor heel je applicatie.
Voordeel: Elke view registreer je bij de overkoepelende controller, die macht heeft over elk model. Op die manier heeft elke view onmiddellijk toegang tot elk model. Constructoren worden eenvoudiger en je moet de modellen ook niet nodeloos "doorgeven".
Nadeel: Wanneer je een onderdeel wil hergebruiken in een andere applicatie, dan kan je enkel de view recupereren. Al de rest moet je herschrijven.
Nieuwe views toevoegen gaat echter vlot: ze krijgen al hun informatie eenvoudig via de controller.
=> zeer uitbreidbaar, geen overbodige argumenten in constructoren
C) Is er een andere, professionelere manier?
Alvast bedankt voor jullie hulp!

