1

Class Diagram

Why this matters

The State pattern replaces a growing pile of turn-condition if statements with a PlayerState abstraction and one class per behavior. Your class diagram should make that delegation visible.

🎯 You will learn to

  • Create the State-pattern roles for Monopoly player behavior
  • Show the operations that the sequence diagram will later call

Draw a class diagram with:

  • Player
  • a state abstraction such as PlayerState as either an interface or an abstract class
  • concrete states for normal turns, jail, and bankruptcy
  • an abstract operation for taking a turn and an operation for changing state
  • an aggregation or composition relationship showing that Player holds its current state
2

State Diagram

Why this matters

A State-pattern design still needs a precise lifecycle: which condition moves a player from one state object to another? The state diagram records those rules without burying them in code.

🎯 You will learn to

  • Model Monopoly player-state transitions
  • Label transitions with clear state-change conditions

Draw a state diagram with the same normal-turn, in-jail, and bankrupt state names you used for the concrete state classes in your class diagram. Label each transition with a clear condition.

3

Sequence Diagram

Why this matters

The sequence diagram is the consistency check: the calls you show here should be operations from the class diagram, and the participating state object should correspond to a state from the state diagram.

🎯 You will learn to

  • Show one typical State-pattern turn interaction
  • Keep operation names consistent across UML diagrams

Draw one typical interaction. A good version shows a Player object calling at least two different concrete state objects, with a state-change call between those turn calls. Use method names that also appear in your class diagram.