우리는 게임이든다른 것이든 이런 객체의 상태에 대해서 많이 접하게 됩니다상태에 따라서 같은 기능도 다르게 작동해야 하는데 위 그림도 그것을 나타내고 있습니다만약 우리가 상태 패턴을 모른다면 두가지 방법밖에 없습니다상태가 정수로 표현된다면switch 문으로 case를 상태로 하여 쭈욱 늘어 뜨릴 수 있고상태가 정수가 아닌 문자열이나 기타 다른 조건이라면 if, else if로 복잡하게 코딩할 수 밖에 없습니다.






캐릭터 클래스의 모든 매서드의 처리를 상태객체에게 위임합니다위임된 기능은 상태 객체의 현재 타입에 따라 다르게 처리됩니다현재 타입이란 서브클래스 타입을 말하는 것이죠. 이 자체가 상태가 됩니다위임된 처리를 수행하는 방법은 캐릭터 클래스내에서 상태 객채를 접근 가능하게 한뒤상태 객체는 캐릭터 객체를 매개변수로 받아서 처리를 구현합니다이것은 마치 캐릭터 객체를 대신 해서 동작하는 느낌입니다상태를 바꿀때도 이런 방법을 사용합니다상태 객체는 내부 데이터 변수가 없기 때문에 싱글톤으로 만들어 여러 캐릭터 객체가 이 상태객체의 기능을 공유할 수 있습니다.*플라이급 패턴



'Programing > Design Pattern' 카테고리의 다른 글

상태패턴 예제  (0) 2016.11.30
템플릿 메서드  (0) 2016.11.30
전략패턴,Strategy patterns  (0) 2016.11.30

+ Recent posts