State pattern
State Pattern (상태패턴)
객체의 다양한 상태를 객체화합니다.객체 내부의 상태가 바뀜에 따라서 객체의 행동을 바꿀 수 있습니다
마치 객체의 class가 바뀌는 것과 같은 결과를 얻을 수 있습니다.
State Pattern 의 class diagram
먼저 객체의 여러 상태들에 대한 공통 인터페이스를 정의한다. 여기서는 State interface가 그 역할을 한다.
Context는 객체의 상태(State 객체)를 바꾸어가면서 다른 행동을 할 수 있는 클래스로, 여러개의 객체 상태를 가질 수 있다. request() method가 호출되면 그 작업은 상태 객체에게 위임(delegation)된다.
State 인터페이스를 구현한 실제 객체의 상태를 나타내는 Concrete State는 Context로 부터 요청된 작업을 수행한다 (handle() method )