[디자인 패턴] 3.State 패턴
State 패턴에 대한 UML을 보자마자 든 생각은 ‘어? 이거 Strategy 패턴과 똑같은데?’ 라는 생각이었고, State 패턴에 대한 설명을 듣고 나서 든 생각은 ‘어? 이거 옛날에 Logic design 수업에서 배운 FSM(Finite State Machine)과 비슷하네?’ 라는 생각이었다.
그리고 실제로 FSM 개념을 프로그래밍적으로 구현한 것이 State패턴이다. UML은 Strategy패턴과 사실상 같다고 볼 수 있다.
Context 클래스에서 State interface 객체를 가지고 있고, State과 관련된 행동을 State class에게 위임한다.
그렇다면 Strategy와 다른 점은 무엇일까? Strategy 패턴은 공통적 성격이 있는 여러가지 기능을 특정 메소드에서 모드에 따라 다르게 실행되도록 하는 것이라면, State 패턴에서는 특정 메소드가 실행될 때 모드에 따라 다르게 실행되는 점은 동일하지만, 특정 조건에서 모드를 전환시킨다는 점에서 다르다…