-
8. State Patternbackup/design pattern 2011. 12. 30. 16:28# Satate Pattern
스테이트 패턴을 이용하면 객체의 내부 상태가 바뀜에 따라서 객체의 행동을 마꿀 수 있다.
마치 객체의 클래스가 바뀌는 것과 같은 결과를 얻을 수 있다.
## 스테이트 패턴 vs 스트래티지 패턴
스테이트 패턴을 사용할 때는 상태 객체의 일련의 행동이 캡슐화 된다. 상황에 따라 Context 객체에서 여러 상태 객체 중 한 객체에게 모든 행동을
맡기게 된다. 그 객체의 내부 상태에 따라 현재 상태를 나타내는 객체가 바뀌게 되고, 그 결과로 컨텍스트 객체의 행동도 자연스럽게 바뀌게 된다.
스트래티지 팬턴을 사용할 때는 일반적으로 클라이언트에서 컨텍스트 객체한테 어떤 전략 객체를 사용할지를 지정해 준다. 스트래티지 패턴은 주로
실행시에 전략 객체를 벼경할 수 있는 유연성을 제공하기 위한 용도로 쓰인다. 보통 가장 적합한 전략 객체를 선택해서 사용하게 된다.