Versions Compared

Key

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

...

PlantUML Macro
object "CardDeck" as cardDeck {
}
object "#card0 : Card" as card1 {
	suit = 'S'
	face = 1
}
object "#card1 : Card" as card2 {
	suit = 'S'
	face = 2
}
object "#card2 : Card" as card3 {
	suit = 'H'
	face = 1
}
cardDeck *--> card1: cards
cardDeck *--> card2: cards
cardDeck *--> card3: cards

object "CardContainerIterator" as iterator0 {
	pos = 0
}
iterator0 --> cardDeck: cardContainer


object "CardContainerIterator" as iterator1 {
	pos = 1
}
iterator1 --> cardDeck: cardContainer

iterator0 ..> iterator0: hasNext() => true
iterator0 ..> iterator1: next() => #card0


object "CardContainerIterator" as iterator2 {
	pos = 2
}
iterator2 --> cardDeck: cardContainer

iterator1 ..> iterator1: hasNext() => true
iterator1 ..> iterator2: next() => #card1


object "CardContainerIterator" as iterator3 {
	pos = 3
}
iterator3 --> cardDeck: cardContainer

iterator2 ..> iterator2: hasNext() => true
iterator2 ..> iterator3: next() => #card2
iterator3 ..> iterator3: 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 de eneste som endrer seg er pos-attributet, som går gjennom rekka 0, 1, 2 og stopper på 3 (siden 3 >= antall kort).

 

 

 

 

 

HTML Comment
hiddentrue
PlantUML Macro
object "CardDeck" as cardDeck0 {
}
object "#card0 : Card" as card10 {
	suit = 'S'
	face = 1
}
object "#card1 : Card" as card20 {
	suit = 'S'
	face = 2
}
object "#card2 : Card" as card30 {
	suit = 'H'
	face = 1
}
cardDeck0 *--> card10: cards
cardDeck0 *--> card20: cards
cardDeck0 *--> card30: cards

object "CardContainerIterator" as iterator0 {
	pos = 0
}
iterator0 --> cardDeck0: cardContainer


object "CardDeck" as cardDeck1 {
}
object "#card0 : Card" as card11 {
	suit = 'S'
	face = 1
}
object "#card1 : Card" as card21 {
	suit = 'S'
	face = 2
}
object "#card2 : Card" as card31 {
	suit = 'H'
	face = 1
}
cardDeck1 *--> card11: cards
cardDeck1 *--> card21: cards
cardDeck1 *--> card31: cards

object "CardContainerIterator" as iterator1 {
	pos = 1
}
iterator1 --> cardDeck1: cardContainer

iterator0 ..> iterator0: hasNext() => true
iterator0 ..> iterator1: next() => #card0


object "CardDeck" as cardDeck2 {
}
object "#card0 : Card" as card12 {
	suit = 'S'
	face = 1
}
object "#card1 : Card" as card22 {
	suit = 'S'
	face = 2
}
object "#card2 : Card" as card32 {
	suit = 'H'
	face = 1
}
cardDeck2 *--> card12: cards
cardDeck2 *--> card22: cards
cardDeck2 *--> card32: cards

object "CardContainerIterator" as iterator2 {
	pos = 2
}
iterator2 --> cardDeck2: cardContainer

iterator1 ..> iterator1: hasNext() => true
iterator1 ..> iterator2: next() => #card1


object "CardDeck" as cardDeck3 {
}
object "#card0 : Card" as card13 {
	suit = 'S'
	face = 1
}
object "#card1 : Card" as card23 {
	suit = 'S'
	face = 2
}
object "#card2 : Card" as card33 {
	suit = 'H'
	face = 1
}
cardDeck3 *--> card13: cards
cardDeck3 *--> card23: cards
cardDeck3 *--> card33: cards

object "CardContainerIterator" as iterator3 {
	pos = 3
}
iterator3 --> cardDeck3: cardContainer

iterator2 ..> iterator2: hasNext() => true
iterator2 ..> iterator3: next() => #card2
iterator3 ..> iterator3: hasNext() => false