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 StringGridImpl-objekt, som inneholder tre Cardinneholder to rader og tre kolonner med seks String-objekter, og hvordan et en (og samme) CardContainerIterator StringGridIterator utvikler seg over tid gjennom en iterasjon over Card String-objektene som CardDeck StringGridImpl-objektet inneholder, altså #card1, #card2 og #card3 "en", "to", "tre", "fire", "fem" og "seks". Vi ser at CardContainerIterator StringGridIterator-objektet hele tiden er koblet til samme CardDeck StringGridImpl-objekt og at det eneste som endrer seg er pos row, column-attributetattributtene, som går gjennom rekka alle par fra 0, 0 til og med 1, 2 og stopper på 3 2, 0 (siden 3 2 >= antall kortrader). Merk at i dette eksemplet er CardContainerIterator StringGridIterator-objektet koblet til et CardDeck StringGridImpl-objekt, men at det godt kunne vært et CardHand-objekt eller en hvilken som helst instans av en klasse som implementerer CardContainer StringGrid. |