−상태 패턴(State Pattern)은 현재 상태에 따라 달라지는 행동을 상태별 구현에 모으고, 본체가 현재 상태 객체에 일을 맡기는 GoF 행위 패턴이다. 문서가 초안일 때는 내용을 고칠 수 있지만 검토 중에는 수정할 수 없고, 게시 뒤에는 제출이나 승인도 더 할 수 없는 경우라면, 같은 Edit()나 Approve() 요청을 받아도 현재 상태의 구현이 허용하거나 거부하도록 나눌 수 있다.
로그인 실패 횟수, 변수에 저장한 값, 편집 중인 본문도 모두 상태지만, 값을 보관하는 것만으로 State 패턴이 되지는 않는다. 일반 개념과 그 역사는 [wikiLink]에서 다루고, 여기서는 상태에 의존하는 행동을 어떻게 분리할지 설명한다.
+상태 패턴(State Pattern)은 현재 상태에 따라 달라지는 행동을 상태별 구현에 모으고, 본체가 현재 상태 객체에 일을 맡기는 GoF 행위 패턴이다. 문서가 초안일 때는 내용을 고칠 수 있지만 검토 중에는 수정할 수 없고, 게시 뒤에는 제출이나 승인도 더 할 수 없는 경우라면, 같은 Edit()나 Approve() 요청을 받아도 현재 상태의 구현이 허용하거나 거부하도록 나눌 수 있다. 이처럼 본체가 요청을 받고 실제 처리는 다른 객체의 메서드로 넘기는 것을 위임이라고 한다.
로그인 실패 횟수, 변수에 저장한 값, 편집 중인 본문은 모두 프로그램의 상태 정보다. 일반 개념과 그 역사는 [wikiLink]에서 다루고, 여기서는 같은 요청을 상태에 따라 다르게 처리할 때 그 행동을 어디에 모을지 설명한다.