Klassen Lane

Vi låter en fil bestå av ett antal positioner som antingen kan innehålla ett fordon eller vara tom (dvs null).

Använd en array. Fordon in i en änden (högsta index) och ut ur andra änden (index 0).

bild

Förenkling av verkligheten: Alla fordon tar lika stor plats.

Vad händer på filen när tiden stegas?

bild

bild

bild

bild

bild

Observera att ett fordon flyttas högst en position per tidssteg!

Förenkling av verkligheten: Ett fordon står antingen stilla eller flyttar sig en plats per tidssteg.

Vad sker i ändarna på Lane?

Klassen Lane vet inte vad som finns framför eller bakom. Det är alltså "någon annan" som ser till att fordon kommer in på respektive lämnar filen.

Lane måste tillhandahålla en metod för att ta ut från första platsen och returnerar fordonet som fanns där:

bild

Det måste också finnas en metod som sätter ett fordon på sista platsen:

bild

Om man lägger ett fordon på sista platsen och den inte var ledig kommer man att tappa bort det som låg där:

bild

Det måste alltså finnas en metod som talar om sista platsen är ledig.

Vi får alltså följande UML-diagram:

Se specifikationen!

bild

Tillbaka

Valid CSS!