OOP

Tags:    java

Jeg er begyndt på at lave et program, hvor man kan indtaste 4 værdier (x1, y1, x2, y2) også tegner programmet en linje udfra de værdier.

Programmet er bygget op af to paneler. Det ene er "tegnebordret" hvor linjen bliver tegnet, og det andet er til at indtaste oplysninger i.

Jeg har bare nogle problemer med at finde ud af hvilke classes jeg skal lave, og nu når jeg har tænkt over det, har jeg svært ved at se hvordan man nogen sinde kan få brug for mere end én class i en swing applikation. Man har jo allerede alle de classes man får brug for. Mine paneler har deres egen klasse, min knap, mine tekstfelter, stregen der skal tegnes. Vis jeg har lyst til at lave mine kordinater som et specielt kordinat objekt mener jeg også at det findes...

Så giver det overhovedet nogen mening at lave sine egne klasser, vis man ikke programere til sin egen robot eller noget der ikke findes et bibliotek til i forvejen?



8 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Ja der er en masse GUI klasser, men hvis der nu var en eller anden GUI komponent som ikke fandtes skal du jo lave en klasse det.

Så skal du lave data klasser hvis eneste formål er at holde data.

Control klasser, der verificere ind data, viser tager data fra data klasser og giver til gui klasser for at blive vist, gemmer data fra data klasser til et lager database,filer når en applikation lukkes og henter og gendanner dem igen når den åbnes.


Det er en fejl at lade GUI klasser være ens data klasser.

Det er en fejl at lade GUI klasser være ens control klasser.

En af de simpleste grunde til at det er en fejl er at det binder din GUI. F.eks. hvis du gemmer dit tal i et tekst fejl men pludselig vil have det til en spin er det ikke nok bare at skifte klassen ud og sende den værdi til en control klasse, men du skal rette i koden alle steder hvor du før brugte text feltet. Dette er nok et tænkt eksempel, som måske kunne løses ved bare at kalde spinneren det samme som textfeltet.




Tak for svaret.

vil det sige at jeg foreksempel kunne lave en GUI klasse til at vis mine paneler og en kordinat klasse til at holde mine kordinater i, vis jeg ikke vil bruge den der er der i forvejen? hvor skal stregtegner funktionen så være? i GUI klassen eller i en ny control klasse?

Har lige et bonus spørgsmål:
Hvor skal man placere main metoden.
Det er noget jeg tit har tænkt over, jeg har kun lavet programmer med et enkelt vindue, så har altid bare lagt den i den class der arver fra JFrame.



Indlæg senest redigeret d. 19.06.2008 19:28 af Bruger #13669
det koordinat klassen i Java hedder iøvrigt Point ligesom den formentlig gør i de fleste sprog der har en koordinat klasse.



det koordinat klassen i Java hedder iøvrigt Point ligesom den formentlig gør i de fleste sprog der har en koordinat klasse.

...hmmm...mange libraries bruger vektorer som koordinater.
By the way kan du læse lidt om model-view-controller designet her: http://en.wikipedia.org/wiki/Model-view-controller



Java Swing doesn't necessarily use a single controller. Because its event model is based on interfaces,


det vil sige at jeg skal have en "view" klasse der både fungere som view og control, også en model klasse der holder mine kordinater?

har også fået at vide herinde, at det er lettest at putte listenersne ind i GUI/view klassen.



Indlæg senest redigeret d. 20.06.2008 22:29 af Bruger #13669
ved godt jeg har lavet en tråd om det under generelt/diverse, men spøger også her:

Er der nogle der kender nogle bøger/sider/et eller andet, der handler om hvordan man bygger sin applikation op med klasser osv.

syntes det er meget forvirrende.



ved godt jeg har lavet en tråd om det under generelt/diverse, men spøger også her:

Er der nogle der kender nogle bøger/sider/et eller andet, der handler om hvordan man bygger sin applikation op med klasser osv.

syntes det er meget forvirrende.


hehe, det tager noget tid og erfaring at "se lyset". Jeg kan varmt anbefale dig at læse om "design patterns". Det er generelle design idéer, som bruger objekt orientering. Jeg tror først jeg virkelig forstod at elske OO efter at have studeret et par patterns.

Men hvis ikke du forstår meningen med klasser og hvordan man deler sit program op med det samme, så fortvivl ikke. Bare bliv ved. Så kommer forståelsen lidt efter lidt. Og hvis du så også sætter dig ind i UML (Unified Modelling Language), så vil du have lettere ved at forstå strukturen i andres design. De fleste objekt orienterede designs vil være (eller i hvert fald kunne) beskrevet med UML.



ok, vil se om jeg kan finde nogle bøger eller noget andet om design patterns så :D

Tak for svarene.



t