Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

PlantUML Macro
abstract class Application {
	+abstract void start(Stage)
}
class MemoryApp {
	+void start(Stage)
}
class Memory<Integer> {
	+Integer nextItem()
	+acceptItem(Integer)
}

class Text {
	+setText(String)	
}
class TextField {
	+getText()
}
Application <|- MemoryApp
MemoryApp --> Memory: memory
MemoryApp --> Text: systemOutput
MemoryApp --> TextField: userInput
PlantUML Macro
object MemoryApp {
}
object Memory<Integer>Memory {
	Integer nextItem()
	acceptItem(Integer)
}

classobject Text {
}
classobject TextField {
}
Application <|- MemoryApp
MemoryApp --> Memory: memory
MemoryApp --> Text: systemOutput
MemoryApp --> TextField: userInput

PlantUML Macro
MemoryApp -> Memory: nextItem()
Memory -> MemoryApp: 3
MemoryApp -> Text: setText("Element nr. 1 er 3")
participant TextField
actor bruker
Text -> bruker: "Element nr. 1 er 3"
MemoryApp -> Text: setText("Gjenta element nr. 1 av 1")
Text -> bruker: "Gjenta element nr. 1 av 1"
bruker --> TextField: 3
TextField -> MemoryApp: handleSubmitUserInputAction()
MemoryApp -> TextField: getText()
TextField --> MemoryApp: "3"
MemoryApp -> Memory: acceptItem(3)
Memory --> MemoryApp: Boolean.TRUE
MemoryApp -> Memory: nextItem()
 
 

...

Sekvensdiagrammet viser hvordan Text- og TextField-objektene samhandler med MemoryApp- og Memory-objektene. Sekvensen er omtrent som i versjon 1, med noen viktige forskjeller:

  • Text-objektet har tatt rollen til System.out og tar imot meldinger til brukeren.
  • Istedenfor at MemoryApp leser input fra System.in med Scanner.nextLine()-metoden, så er det TextField-objektet som kaller handleSubmitUserInputAction(...)-metoden på MemoryApp-objektet når brukeren har (skrevet inn et tall og) trykket return-tasten.

Det at program-objektet ikke aktivt henter input, men venter på at et interaktivt JavaFX-objekt sier fra om input er typisk for hendelsesstyrte programmer. På en måte venter program-objektet på alle mulige input på en gang, og må reagere på det som kommer. I dette tilfellet er det jo bare ett interaktivt JavaFX-objekt, men i større programmer er det mye som kan skje på en gang.