State Pattern
스테이트 패턴을 정리한다.
FSM (Finite State Machine)
지하철 개찰구가 동작하는 방식에서 간단한 유한 상태 기계 (FSM: Finite State Machine) 의 예를 보자.
아래 다이어그램을 STD (State Transition Diagram) 이라고 한다.
- 기계가 Locked 상태에서 coin 이벤트를 받으면, Unlocked 상태로 전이가 되고 unlock 행동을 호출
- 기계가 Unlocked 상태에서 pass 이벤트를 받으면, Locked 상태로 전이가 되고 lock 행동을 호출
같은 의미로 STT (State Transition Table) 로도 표현할 수 있다.
1 | Locked coin Unlocked unlock |
이 도구의 장점은, 설계자가 이상한 조건 또는 그 조건을 다룰 행위의 정의되지 않은 조건을 찾기 쉽다.
에를 들어,
- Unlocked 상태에서 coin 이벤트를 다루는 전이가 없고,
- Locked 상태에서 pass 이벤트를 다루는 전이도 없다.
추가해보자.