Wat een zalige thread

Dju ik moet hier toch meer terug komen zien. Een paar opmerkingen(ik weet dat er oude koeien bij zitten):
edit: vind het wel grappig over die "geen tijd voor analyse". Bij alle info die ik krijg voor computerwetenschappen staat er dat een computerwetenschapper in de eerste plaats een softwareONTWERPER is (dus analytisch), het programmeren is iets bijkomstig
Spijtig genoeg is dit in het echte leven niet zo. Het is inderdaad zo dat software ontwikkelen op de eerste plaats analyse is, maar als een klant kan kiezen tussen:
40 manuren voor zijn applicatie
80 manuren voor zijn applicatie
haalt de goedkoopste oplossing het. Je kan dat counteren door een goed framework the schrijven, maar de meeste managers geven je daar de tijd niet voor. Hun resultaten worden per maand gereviewed. Daarbovenop als er daarna wijzigingen in de applicatie moeten gebeuren en die duren langer brengt het meer op, dus hun kan dat eigenlijk niets schelen.
Als ik nu publieke variabelen oproep dan kan ik toch nog altijd checken of een vector leeg is of niet en geen error krijgen. Kzeg niet dat dat goed is maar ge kunt dat toch opvangen. In een game is dat niet belangerijk als ge het ergens anders opvangt.
Dat kan je inderdaad. Maar ben jij er zo zeker van dat je dat 8 weken later nog weet dat je dat moet doen? En ben je zeker dat je het op geen enkele plaats gaat vergeten? En als die controle ooit verandert omdat er een fout inzit, in welke applicatie zou je dat dan het liefste aanpassen?
class Vector2D {
public double x;
public double y;
Met welke reden zou je de controle niet in de normalize method steken? Als je dit via de set method gaat inperken, hoe kan je dan trouwens uberhaupt nog een nul-vector aanmaken??? Met jou classe is het onmogelijk een snelheidsvector x=0,y=0,z=0 te hebben.
Persoonlijk hou ik mijn code liefst zo eenvoudig en duidelijk mogelijk. En vind ik
position.x += speed.x
duidelijker en makkelijker te debuggen dan
position.setX( position.getX() + speed.getX() )
Ik zou nooit mijn x en y public maken.
En op een 2D item heb je voor maar 3 functies nodig.
MoveHorizontal(int) this.position.y = 0;
MoveVertical(int) this.position.x = 0;
SetSpeed(float) this.speed = 1;
ChangeSpeedMultiplier(float) this.speed *= 0.9
Dit laat je toe om in de movehorizontal en movevertical na te gaan (stel je linksbeneden pos is 0.0) en rechtsboven = (screenwidth,screenheight) of je niet buiten je speelveld gaat, je colission te testen enzovoort. Allemaal op 1 plek.
Getters en Setters worden meestal wel gedocumenteerd, kijk maar naar alles van Microsoft, Sun, Game SDK's etc.
Idd, maar deze doc is meestal gewoon een uitleg van wat de property juist is
