ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • State Patern ( 상태 패턴 )
    GamePrograming/내가본 GPG_One 2009. 11. 16. 17:19
    상태패턴( State Pattern )은 'Object의 속성을 다른 객체에 위임한다' 라 되어 있으며,

     구현 목적은 '다른 종류의 객체들이 공통 속성을 가지는 경우, 속성의 구현을 포함하는 객체에서 분리시킨다'

     라고 되어 있습니다.

     따라서 구현을 위해서는  속성을 가진 객체와 실제 속성을 구현하려는 객체가 필요합니다.

     

    좀더 쉽게 말하면, A, B, C 라는 객체가 있는데,

     Move, Attack, Guard, Stop 등  공통되는 구현이 있다면,

     이러한 액션을 취하는 속성들을 따로 분리해서, 구현한다는게 상태패턴의 목적입니다.













    마린 3마리를 생성한다음, 업데이트 시킵니다.
    초기화가 STOP으로 되어 있으니까, 가만히 서있겠네요..
    그다음 각각 다른 명령을 내려준다음, 업데이트 시킵니다.
    어느놈은 그냥, 이동하고, 다른놈은 공격하러 가고 각기 다르게 움직이겠네요..
    공격하러간 마린이 러커나 저글링에게 죽게 되면, 삭제를 합니다.

    개인적으로 이 상태패턴이야 말로, 클래스의 상속기능을 제대로 활용하는 방법중 하나라고 생각합니다.
    문제는 상태가 실시간으로 자주 변할경우, 메모리 할당과 삭제가 많으므로, 단편화 문제가 있는데,
    이는 메모리 풀로 해결을 하면 됩니다.
    디자인 패턴의 목적이 성능을 높이기 보다는, 디자인의 유연성을 높이는것인 만큼, 
    그 상황에 맞게 적절히 사용한다면, 유지보수및 코딩하기가 더 수월해질 거라 생각합니다.


    댓글

Designed by Tistory.