MVC igen...

Tags:    java

Tror næsten jeg har fat i det der MVC nu :D

Men jeg er lige kommet til at tænke på en ting.

Vis man har et program hvor man f.eks. kan indsætte 2 tal i to tekst felter, som programmet så lægger sammen og viser resultatet af i et label, når man trykker på en knap. Skal udregningen af talende så forgå i kontrol/view delen, eller i model delen?

Jeg har hørt at program logik skal være i model, men vis man tænker på at lave genbuglige klasser virker det mere logisk at lave en getX() og getY() i modellen, også sige label.setText(model.getX + model.getY), end det er at have en getResult() i modellen.

Håber i forstår hvad jeg mener.



3 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Efter min mening skal udregningen foregå i modellen. View delen skal bare vise resultatet. Hvis man på et senere tidspunkt finder ud af, at talene skal ganges i stedet for, skal man kun ændre i modellen, og View delen kan forblive uændret.

Et klassisk skoleeksempel er et ur, hvor tiden kan ændres i controlleren. Tiden går i modellen, som så f.eks. opdaterer View delen hvert sekund. View delen har så ansvaret for om tidspunktet bliver vist som et analog eller digital ur.



Enig med Hans.
Idéen medMVC er at alt logikken kun findes i modellen. På den måde kan du ændre eller tilføje flere views. Hvis du f.eks. ville tilføje en log-fil til dit eksempel, skal du også i logfilen til at skrive X + Y. Det hører ikke hjemme i viewet, og som Hans også pointere, vil det blive ekstra arbejde, hvis resultatet pludselig skal udregnes på en anden måde.



Ok. Det var også det jeg regnede med.

Tak.



t