객체의 내부 상태가 바뀜에 따라서 객체의 행동을 바꿀 수 있다. 마치 객체의 클래스가 바뀌는 것과 같은 결과를 얻을 수 있다.
State Pattern은 상태를 별도의 클래스로 캡슐화한 다음 현재 상태를 나타내는 객체에게 행동을 위힘하므로, 내부 상태가 바뀔 때 행동이 달라진다.
State Pattern을 사용했을 때의 장점은 다음과 같다.