MVC - C++?

Tags:    c++

Hej allesammen!

Jeg er ved at tage mig sammen til at begynde på noget OOP, men ved ikke rigtig hvad den helt store fordel er!
Jeg har læst en del om MVC og synes at det er meget logisk, men hvorfor ikke bare bruge helt alm. løse funktioner?

Vil meget gerne have nogen argumenter/eksempler på et godt class system (framework?) i C++.

Skal jeg bruge MVC eller en helt anden pattern?

Håber i kan hjælpe mig.
~Jakob



Jeg tror det er svært at forklare i detaljer hvad fordelen ved OOP er, men når du har brugt metoden nogen tid er det fuldstændig logisk.

MVC er bare én brug af det pattern der fortæller at det er en fordel at dele dit program op i uafhængige dele.

Jeg har ikke rigtigt lavet nogen programmer hvor MVC har været en fordel, men mange hvor jeg(/vi) har delt programmet op i flere (så vidt muligt) uafhængige dele.



Men hvordan? Hvilke dele?
Jeg er fx lige nu i gang med noget 3D programmering i Direct3D, hvilke klasser skulle jeg lave der? render class, initialize class og action class? Eller mere ala MVC med controller, view og model?

Altså: Hvilke klasser ville være logisk at lave i et sådan program?
Og hvorfor er det overhovedet vigtigt at de arver fra hinanden?



Jeg kan ikke fortælle dig hvilke dele det vil være praktisk at dele dit program op i, jeg har ikke designet i hovedet og ved ikke hvad programmet skal kunne.

I praksis vil der oftest være tale om et hierarki af dele, yderst 3-5 dele som udgør hele programmet, hver af disse dele vil så være delt op i 2 - 20 dele som igen er delt op i 2 - 20 dele, indtil man er ned på dele af hver 20 - 200 linjer kode.

Arv i kode er vigtigt, lige som når mennesker dør, hvis ikke der er andre mennesker til at arve får statskassen det hele. Når det drejer sig om software er det Microsoft eller FSF der får det der er tilbage...



Bare en lille tilføjelse som måske kan give en ide om hvordan man deler sit program op i uafhængige dele...

http://www.research.att.com/~bs/style_and_libraries.pdf

Fandt denne (gamle) artikel spændende og berigende at læse og er skrevet af manden selv - Bjarne-drengen.

Bjarne Stroustrup hvis nogle skulle være i tvivl.



Indlæg senest redigeret d. 21.08.2008 22:44 af Bruger #14086
Med hensyn til arv, hvis jeg skal forsøge at være en anelse seriøs:

Arv er en af hovedhjørnestenene i OOP, og der findes utallige grunde til at lave arv, oftest til at lave mere specialiserede udgaver af en class.

Et eksempel kunne være at man lavede klasser for:
Objekt->FlytBarObjekt->Køretøj->Bil->CitroenC1

Som så kan varieres på utallige måder:
Objekt->FlytBarObjekt->Køretøj->Cykel->MTB

En af fordelene ved denne metode er at man kan deles om koden, Mountainbikes og Citroen C1 er begge kørertøjer, så de har en del til fælles.

En anden fordel er at de dele af koden der er lige glade med om bilen er en Citroen eller en Peugeot ikke behøver at vide det, de ved bare at det er en Bil og kan behandle dem ens.



Okay, så hvis vi nu fx siger at mit 3D program skal kunne rende, modtage input og lave beregninger, virker MVC classen så ikke som det umildbare valg?
Model til beregninger
View til render
Controller til muse og keyboard beskeder?



t