Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Selv om et slikt enkelt spill kan implementeres med én klasse, så legger vi opp til en klassisk todeling i én hovedprogram-klasse, som håndterer kommunikasjone med brukeren, og én logikk-klasse, som håndterer spill-logikken. Dersom logikk-klassen gjøres anvendelig og generell nok, vil en senere kunne gjenbruke den i en grafisk versjon. Todelingen illustreres under med et objektdiagram:

PlantUML Macro
objectclass MemoryProgram {
	Kommuniserer med brukeren
}
note top: Hovedprogram-objektklasse

objectclass Memory {
	Håndterer tilstanden underveis i spillet
}
note top: Logikk-objektklasse
MemoryProgram -right-> Memory: memory

...

Vi ser at Memory hovedsaklig tilbyr to tjenester: å generere nye tall i sekvensen og å ta imot et nytt tall (fra brukeren) og sjekke det mot fasiten. Det er dessuten underforstått at Memory må huske både tall-sekvensen og hvor langt brukeren har kommet i å gjenta den. Vi kan nå oppdatere diagrammet vårt med denne innsikten:

PlantUML Macro
objectclass MemoryProgram {
	Kommuniserer med brukeren
}
objectclass Memory {
	tallsekvens
	sekvensPosisjon
	genererNesteTall()
	sjekkNesteTallFraBruker()
}

MemoryProgram -right-> Memory: memory