Structuur van programma's: tips

Moderators: jkien, Xilvo

Reageer
Berichten: 56

Structuur van programma's: tips

Beste,

Ik zocht op dit forum enkele tips in verband met het opmaken van de structuur van een programma in Java. In de bijlage zit er een voorbeeld (met de opgave). Deze soort oefeningen vind ik soms chaotisch om te maken. Vaak maak ik meer methodes aan in een bepaalde klasse die er nodig zijn of heb ik er maar een paar terwijl de "oplossing" meerdere methodes in zijn klasse heeft. Natuurlijk is ieder klassendiagram zo goed als uniek, maar vaak moeten bepaalde elementen dicht bij elkaar aanleunen, wat bij mij soms niet het geval is (bij deze oefening). Vaak stel ik CRC kaartjes op en kijk ik wat het object moet kunnen en wat zijn verantwoordelijkheden zijn... Bij deze oefening zijn er immers immens veel klassen dat ik vaak de interacties tusses de klassen door elkaar lopen. Mocht er iemand deftige tips hebben...

Dank.
Bijlagen
oefz8_10_11.pdf
(65.32 KiB) 290 keer gedownload
KlassendiagrammaEnora__1_.pdf
(553.98 KiB) 247 keer gedownload

Gebruikersavatar
Berichten: 5.609

Re: Structuur van programma's: tips

Ik zocht op dit forum enkele tips in verband met het opmaken van de structuur van een programma in Java. In de bijlage zit er een voorbeeld (met de opgave). Deze soort oefeningen vind ik soms chaotisch om te maken. Vaak maak ik meer methodes aan in een bepaalde klasse die er nodig zijn of heb ik er maar een paar terwijl de "oplossing" meerdere methodes in zijn klasse heeft. Natuurlijk is ieder klassendiagram zo goed als uniek, maar vaak moeten bepaalde elementen dicht bij elkaar aanleunen, wat bij mij soms niet het geval is (bij deze oefening). Vaak stel ik CRC kaartjes op en kijk ik wat het object moet kunnen en wat zijn verantwoordelijkheden zijn... Bij deze oefening zijn er immers immens veel klassen dat ik vaak de interacties tusses de klassen door elkaar lopen. Mocht er iemand deftige tips hebben...
Is dat je voorgestelde oplossing? Of is dat de correcte oplossing?

Eerst en vooral: hoeveel ervaring heb je met programmeren (naar het schijnt moeten ze tegenwoordig dit al maken voordat ze een eerste volledige programma geschreven hebben ;) )

Eerste bedenkingen: waar wordt bijgehouden welk object waar staat? Waar worden de NPC's hun AI uitgevoerd? Waarom is dit in een Nederlands-Engels mengelmoes?

Het belangrijkste bij dit soort dingen is belangrijk van onbelangrijk scheiden, abstracties maken.

Dus stap 1) is: wat maak je? Een sidescrollspelletje. Je hebt dus objecten die ergens op een kaart staan. Die objecten hebben enkel een positie. Op het einde ga je moeten kunnen efficient, gegeven een positie, vinden wat er op staat en omgekeerd, gegeven een object, zijn positie kennen.

Op dat moment maak je een schema enkel hiervan op. Zorg je dat al deze dingen werken.

Vervolgens voeg je iets toe, bijvoorbeeld op sommige objecten kun je niet stappen, op andere wel.

Vervolgens voeg je nog iets toe, bijvoorbeeld voorwerpen die iedere 'tick' iets moeten kunnen doen. Enz.

Bij iedere stap zorg je dat alle verantwoordelijkheden van hogere abstractieniveaus blijven werken (Bijvoorbeeld door subklassen te gebruiken!). En zo zak je steeds verder in de abstractieboom tot je volledig aan de opdracht voldoet. Zo zul je dan bijvoorbeeld zien dat een 'geboortegat' meer gemeen heeft met een 'wezen' dan met 'vak'.
What it all comes down to, is that I haven't got it all figured out just yet

And I've got one hand in my pocket and the other one is giving the peace sign

-Alanis Morisette-

Berichten: 56

Re: Structuur van programma's: tips

317070 schreef:Is dat je voorgestelde oplossing? Of is dat de correcte oplossing?

Eerst en vooral: hoeveel ervaring heb je met programmeren (naar het schijnt moeten ze tegenwoordig dit al maken voordat ze een eerste volledige programma geschreven hebben ;) )

Eerste bedenkingen: waar wordt bijgehouden welk object waar staat? Waar worden de NPC's hun AI uitgevoerd? Waarom is dit in een Nederlands-Engels mengelmoes?

Het belangrijkste bij dit soort dingen is belangrijk van onbelangrijk scheiden, abstracties maken.

Dus stap 1) is: wat maak je? Een sidescrollspelletje. Je hebt dus objecten die ergens op een kaart staan. Die objecten hebben enkel een positie. Op het einde ga je moeten kunnen efficient, gegeven een positie, vinden wat er op staat en omgekeerd, gegeven een object, zijn positie kennen.

Op dat moment maak je een schema enkel hiervan op. Zorg je dat al deze dingen werken.

Vervolgens voeg je iets toe, bijvoorbeeld op sommige objecten kun je niet stappen, op andere wel.

Vervolgens voeg je nog iets toe, bijvoorbeeld voorwerpen die iedere 'tick' iets moeten kunnen doen. Enz.

Bij iedere stap zorg je dat alle verantwoordelijkheden van hogere abstractieniveaus blijven werken (Bijvoorbeeld door subklassen te gebruiken!). En zo zak je steeds verder in de abstractieboom tot je volledig aan de opdracht voldoet. Zo zul je dan bijvoorbeeld zien dat een 'geboortegat' meer gemeen heeft met een 'wezen' dan met 'vak'.
Dit is de correcte oplossing

Reageer