Versions Compared

Key

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

...

PlantUML Macro
object "StringGridImpl" as stringGrid {
	"en" "to" "tre"
	"fire" "fem" "seks"
}

object "StringGridIterator" as iterator00 {
	row = 0
	column = 0
}
iterator00 --> stringGrid: stringGrid


object "StringGridIterator" as iterator01 {
	row = 0
	column = 1
}
iterator01 --> stringGrid: stringGrid

iterator00 ..> iterator00: hasNext() => true
iterator00 ..> iterator01: next() => "en"


object "StringGridIterator" as iterator02 {
	row = 0
	column = 2
}
iterator02 --> stringGrid: stringGrid

iterator01 ..> iterator01: hasNext() => true
iterator01 ..> iterator02: next() => "to"


object "StringGridIterator" as iterator10 {
	row = 1
	column = 0
}
iterator10 --> stringGrid: stringGrid

iterator02 ..> iterator02: hasNext() => true
iterator02 ..> iterator10: next() => "tre"


object "StringGridIterator" as iterator11 {
	row = 1
	column = 1
}
iterator11 --> stringGrid: stringGrid

iterator10 ..> iterator10: hasNext() => true
iterator10 ..> iterator11: next() => "fire"

object "StringGridIterator" as iterator12 {
	row = 1
	column = 2
}
iterator12 --> stringGrid: stringGrid

iterator11 ..> iterator11: hasNext() => true
iterator11 ..> iterator12: next() => "fem"

object "StringGridIterator" as iterator20 {
	row = 2
	column = 0
}
iterator20 --> stringGrid: stringGrid

iterator12 ..> iterator12: hasNext() => true
iterator12 ..> iterator20: next() => "seks"


iterator20 ..> iterator20: hasNext() => false



Dette objekttilstandsdiagrammet viser en objektstruktur med et CardDeck-objekt, som inneholder tre Card-objekter, og hvordan et (og samme) CardContainerIterator utvikler seg over tid gjennom en iterasjon over Card-objektene som CardDeck-objektet inneholder, altså #card1, #card2 og #card3. Vi ser at CardContainerIterator-objektet hele tiden er koblet til samme CardDeck-objekt og at det eneste som endrer seg er pos-attributet, som går gjennom rekka 0, 1, 2 og stopper på 3 (siden 3 >= antall kort).

Merk at i dette eksemplet er CardContainerIterator-objektet koblet til et CardDeck-objekt, men at det godt kunne vært et CardHand-objekt eller hvilken som helst instans av en klasse som implementerer CardContainer.

 

...