...
- Easy to Implement
- Can provide the logic for the transition implementation without having to explicitly state it.
- Cleaner and Easier to read which states can be transitioned to other states.
- Easily extendable if future states are to be added.
Disadvantages
- Due to how state machine works, transitions are pre defined between states, based on the diagram here (CPS-799 Spike: Define states and state handling for CM handle), "LOCKED" and "DELETED" states can be accessed from multiple previous states. Meaning they may have to be defined explicitly to jump between these states. Defeating the main purpose of implementing the state machine.