"상태가 동작을 제어하고, 상태는 바뀔 수 있다."는 매우 단순한 아이디어 입니다. 졸음(상태) – 커피(트리거) → 정신이 듦(상태) 상태 패턴의 구현에는 기본적으로 다음의 두 가지 방법이 있습니다. 동작을 가지는 실제 클래스로 상태를 정의합니다. 그리고 그 동작들은 상태가 이전될 때 클래스의 변화에 따라 변경됩니다. 상태와 상태 전이를 단순히 enum 타입처럼 식별자의 나열로 정의합니다. 실제 상태 변화는 상태 머신 이라는 특별한 컴포넌트를 두어 수행합니다. 상태 기반 상태 전이 가장 간단한 예로 전등을 생각해봅시다. 꺼짐과 켜짐 상태가 있으며 어떤 상태로든 전이 할 수 있습니다. 상태를 enum이 아니라 클래스로 정의합니다. LightSwitch는 State와 상태를 전이할 수 있는 수단을 가지며 ..